laravel laravel-wechat token验证和坑

安装

**Laravel < 5.8**
composer require "overtrue/laravel-wechat:~4.0"

**Laravel >= 5.8**
composer require "overtrue/laravel-wechat:~5.0"

配置


在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)
'providers' => [
    // ...
    Overtrue\LaravelWeChat\ServiceProvider::class,
],
'aliases' => [
    // ...
    'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
],
创建配置文件:
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
修改应用根目录下的 config/wechat.php 中对应的参数即可。

每个模块基本都支持多账号,默认为 default。
laravel laravel-wechat token验证和坑

公众号配置

laravel laravel-wechat token验证和坑
在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由,如:

protected $except = [
    // ...
    'wechat',
];
添加路由
Route::any('/wechat', '[email protected]');
然后创建控制器 WeChatController:

<?php

namespace App\Http\Controllers;

use Log;

class WeChatController extends Controller
{

    /**
     * 处理微信的请求消息
     *
     * @return string
     */
    public function serve()
    {
        Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志

        $app = app('wechat.official_account');
        $app->server->push(function($message){
            return "欢迎关注 overtrue!";
        });

        return $app->server->serve();
    }
}
laravel laravel-wechat token验证和坑
存在的坑


1. laravel-wechat 这个包和 barryvdh/laravel-debugbar 冲突
.env文件加上DEBUGBAR_ENABLED=false
2.关闭调试
APP_DEBUG=false