使用wechat配置微信公众号报token验证失败
大家好!我看 github.com/overtrue/laravel-wechat
照着教程配置的。
1. 在 config/app.php 注册 ServiceProvider 和 Facade
2. 创建、修改应用根目录下的 config/wechat.php
这样写,
'official_account' => [
'default' => [
'app_id' => env('WECHAT_OFFICIAL_ACCOUNT_APPID', 'your-app-id'), // AppID
'secret' => env('WECHAT_OFFICIAL_ACCOUNT_SECRET', 'your-app-secret'), // AppSecret
'token' => env('WECHAT_OFFICIAL_ACCOUNT_TOKEN', 'your-token'), // Token
'aes_key' => env('WECHAT_OFFICIAL_ACCOUNT_AES_KEY', ''), // EncodingAESKey
]
3. 然后,在.env 填入对应的。
#wechat official account
WECHAT_OFFICIAL_ACCOUNT_APPID = XXXXX
WECHAT_OFFICIAL_ACCOUNT_SECRET = XXXXX
WECHAT_OFFICIAL_ACCOUNT_TOKEN = XXXXX
WECHAT_OFFICIAL_ACCOUNT_AES_KEY = XXXXX
4. 修改路由:
Route::any(‘/wechat’, ‘WeChatController@serve’);
5.
在 WeChatController 控制器中写
public function serve()
{
Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志
$app = app('wechat.official_account');
$app->server->push(function($message){
return "欢迎关注 ###!";
});
return $app->server->serve();
}
6. 在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由
protected $except = [
"wechat"
];
7. 然后到微信公众号(已认证的服务号):
服务器配置#
修改配置:
服务器地址 (URL), 我的域名 /wechat
令牌 (Token),
消息加解密密钥 (EncodingAESKey),
兼容模式。
提交报错:
Token 验证失败。
8. 访问域名 /wechat
<xml>
<MsgType>text</MsgType>
<Content>欢迎关注 ###!</Content>
<ToUserName></ToUserName>
<FromUserName></FromUserName>
<CreateTime>1606123633</CreateTime>
</xml>
我对照了,这几个和代码中的是一致的。
wechat.log 中:
[2020-11-23T17:07:53.246341+08:00] EasyWeChat.DEBUG: Request received: {"method":"GET","uri":"https://域名/wechat?echostr=1007693913554386937&nonce=1733004785&signature=b355201bc26f8db413994043ed141a8f72446df4×tamp=1606122473","content-type":null,"content":""}
[2020-11-23T17:07:53.247179+08:00] EasyWeChat.DEBUG: Server response created: {"content":"1007693913554386937"}
请教学长,这个怎么排错,解决呢?非常感谢!
推荐文章: