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。
公众号配置
在中间件 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();
}
}

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