easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

  • 版本

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

  • 路由

    Route::any('/wechat/serve', [WechatController::class, 'serve']);
  • 控制器

          <?php
          namespace App\Http\Controllers;
          use App\Logic\Api\WechatLogic;
          use EasyWeChat\Factory;
          use Illuminate\Http\Request;
          use Illuminate\Support\Facades\Log;
    
          class WechatController extends Controller
          {
              private WechatLogic $logic;
    
              public function __construct(WechatLogic $logic)
              {
                  $this->logic = $logic;
              }
    
              public function serve(Request $request)
              {
                  $config = [
                      'app_id' => env('XTSDYH_WXAPP_APP_ID'),
                      'secret' => env('XTSDYH_WXAPP_SECRET'),
    
                      'token' => 'easywechat',          // Token
                      'aes_key' => '2OCyK9OLpUYdEhKPEwLhIwvX3GkEaWUoAjdWRoDhIpB',                    // EncodingAESKey,兼容与安全模式下请一定要填写!
          //            'log' => [
          //                'level' => 'debug',
          //                'file' => '/tmp/easywechat.log',
          //            ],
                  ];
                  $app = Factory::officialAccount($config);
                  $app->server->push(function ($message) {
                      switch ($message['MsgType']) {
                          case 'event':
                              return '收到事件消息';
                              break;
                          case 'text':
                              return '收到文字消息';
                              break;
                          case 'image':
                              return '收到图片消息';
                              break;
                          case 'voice':
                              return '收到语音消息';
                              break;
                          case 'video':
                              return '收到视频消息';
                              break;
                          case 'location':
                              return '收到坐标消息';
                              break;
                          case 'link':
                              return '收到链接消息';
                              break;
                          case 'file':
                              return '收到文件消息';
                          // ... 其它消息
                          default:
                              return '收到其它消息';
                              break;
                      }
          //            return "您好!欢迎使用 EasyWeChat!";
                  });
    
                  $response = $app->server->serve();
          //        $response->send(); // Laravel 里请使用:return $response;
                  return $response;
          //        $this->logic->serve($request);
              }
          }
  • 公众号配置

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

  • 公众号服务出现故障

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

请一下有遇到吗?公众号重复配置了也不行

公众号配置的时候日志有报错


[2022-07-13T18:38:32.274379+08:00] EasyWeChat.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /www/wwwroot/xg-laravel/vendor/overtrue/wechat/src/Kernel/Log/LogManager.php:161)

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

试了新项目也是这个问题,理论上都有遇到才对啊?现在都没有公众号开发了吗

改掉logging.php为logging111.php,报错

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

恢复报错

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

已解决,感谢各位大佬帮忙,搞了一天,坚持不懈
参考:github.com/overtrue/laravel-wechat...

easywechat 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

问题就出在这里,但,还是不懂为啥要加这个

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

看下 csrf_token 校验是否忽略该路由

1年前 评论
my38778570 (楼主) 1年前
讨论数量: 12

看下 csrf_token 校验是否忽略该路由

1年前 评论
my38778570 (楼主) 1年前

回调通了,追一下报错日志

1年前 评论
my38778570 (楼主) 1年前

[2022-07-13T18:38:32.274379+08:00] EasyWeChat.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /www/wwwroot/xg-laravel/vendor/overtrue/wechat/src/Kernel/Log/LogManager.php:161)

报错里已经写的很清楚了,vendor/overtrue/wechat/src/Kernel/Log/LogManager.php:161 根据这个错误路径追一下,发现是这行代码,最终指向了这里

file

可以很清晰的看到是因为在传入的 config 数组中未定义 log.channelslog.default 「这个是 $name 这个变量的值」导致的,我们打开官方文档,查看有该配置的示例,复制粘贴即可解决

file

1年前 评论
my38778570 (楼主) 1年前
my38778570 (楼主) 1年前
荒街! (作者) 1年前
my38778570 (楼主) 1年前
my38778570 (楼主) 1年前
荒街! (作者) 1年前
my38778570 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!