跟教程使用laravel-wechat,token验证成功,可是发送消息时,提示“该公众号暂时无法提供服务,请稍后再试”

麻烦诸位了,帮忙看看是什么问题。我是新手,折腾好久了,还是无法解决问题。

路由文件

Route::get('/', function () {
    return view('welcome');
});

Route::group(['middleware' => ['web']], function () {
    // 不要放这里就不会启用 csrf});

Route::any('/wechat', 'WechatController@serve');<br></br>

控制器文件

class WechatController extends Controller
{
    public function serve()
    {
        Log::info('request arrived.'); 
        $wechat = app('wechat');
        $wechat->server->setMessageHandler(function($message){
            return "欢迎关注 overtrue!";
        });

        Log::info('return response.');

        return $wechat->server->serve();
    }
}<br></br>

laravel日志

[2016-04-07 17:49:27] local.ERROR: exception 'Illuminate\Session\TokenMismatchException' in /var/www/wechat_riguo/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:67
Stack trace:
#0 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#1 /var/www/wechat_riguo/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#2 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
.......后面还有好长......

WeChat日志

[2016-04-07 17:59:40] easywechat.DEBUG: Current configuration: {"debug":true,"use_laravel_cache":true,"app_id":"wxa286a68def0e2c","secret":"8cbb4a67c5b3d50844d6252ccb1817","token":"wechat","aes_key":"OAdbkQMMv7i6wytvBQbsCWCAvlhf6kiofG6R1i9DpCE","log":{"level":"debug","file":"/var/www/wechat_riguo/storage/logs/wechat.log"  []
[2016-04-07 17:59:40] easywechat.DEBUG: Request received: {"Method":"GET","URI":"/wechat?signature=bdf0cd824e1d0ef663f9d093308480e6565e0f62&echostr=3427265654774280636&timestamp=1460051980&nonce=413835758","Query":"echostr=3427265654774280636&nonce=413835758&signature=bdf0cd824e1d0ef663f9d093308480e6565e0f62&timestamp=1460051980","Protocal":"HTTP/1.0","Content":""} []
[2016-04-07 17:59:40] easywechat.DEBUG: Output 'echostr' is '3427265654774280636'. [] []<br></br>
/app/Http/Middleware/VerifyCsrfToken.php

protected $except = [
    'wechat',
];
zhiqueen

还有就是版本信息
"laravel/framework": “5.2.*”,
“overtrue/laravel-wechat”: “~3.0”

JellyBool
Route::group(['middleware' => ['web']], function () {
Route::any('/wechat', 'WechatController@serve');
});

你的路由是放到['middleware' => ['web']这里的么?看log貌似就是 csrf 的 token 问题。

zhiqueen

@JellyBool 没有呀,写在外面了,在帖子顶部有路由的代码。

JellyBool

恩,但是如果你的项目目前就是这么点代码的话,貌似没有什么错误,但是log的提示应该就是 csrf 的token 问题

exception 'Illuminate\Session\TokenMismatchException'

确认代码更新到服务器和清除一下缓存,这些都没问题的话,基本就是人品问题了

zhiqueen

@JellyBool 好的,代码是更新到服务器了,welcome页面的文字会更新。我先清除下缓存试试。

baoniu

bu cuo

Jiang Kun
/app/Http/Middleware/VerifyCsrfToken.php

protected $except = [
    'wechat',
];
Jiang Kun

https://laravel.com/docs/5.2/routing#csrf-excluding-uris
http://laravel-china.org/docs/5.1/routing

我也才学几天,也发现这个问题,不明白 // 不要放这里就不会启用 csrf ,始终没有测试成功。
所以按照文档里的方法做了。

zhiqueen

@Jiang Kun 你的问题解决了?

Jiang Kun

@zhiqueen 代码都发你了! And ?
人与人之间最基本的信任呢?

zhiqueen

@Jiang Kun 呃不是不是!!是我有点忙乱,然后没有看见第一条回复。现在马上去试试先谢谢啦!

zhiqueen

完美解决!@JellyBool @Jiang Kun

tking

已解决

李奇聪

呀 @zhiqueen 你们解决了把代码什么的发出来嘛,我们有很多人都碰到这个问题!

李奇聪

@tking 呀 @zhiqueen 你们解决了把代码什么的发出来嘛,我们有很多人都碰到这个问题!

tking

@李奇聪
上面题主都设好答案了

zhiqueen

@tking @李奇聪 教主设置这个包的时候,就不会遇到这样的情况,好奇怪。

NominationP

一样的东西,但是没有日志显示,可以验证token,但被动回复消息还是 “该公众号暂时无法提供服务,请稍后再试” laravel 5.4 。有一样错误的兄弟吗

NominationP

在微信公众平台上显示服务器返回消息是: