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 公众号服务端配置完成后,公众号内回复一直提示 “公众号服务出现故障”

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

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

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

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

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

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

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年前

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