laravel 微信开发核心是选对 sdk、配好账号、走通授权流程。优先使用 laravel-wechat(overtrue/laravel-wechat),配置关键参数后,两行路由+中间件即可实现自动 oauth 授权并存用户信息至 session。

直接上手,不用绕弯子。Laravel 做微信开发,核心是选对 SDK、配好账号、走通授权流程。新手最容易卡在环境配置和参数填错这两步,下面按实际开发顺序讲清楚。
装对依赖:优先用 Laravel-WeChat
别自己拼 EasyWeChat + 手写中间件,官方推荐的 Laravel-WeChat(overtrue/laravel-wechat)才是为 Laravel 量身定制的方案,自带 OAuth 中间件、事件监听、配置发布机制,省掉大量胶水代码。
- 运行命令安装:
composer require overtrue/laravel-wechat - 发布配置文件:
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider",会生成config/easywechat.php - 注意版本兼容性:PHP ≥ 8.0,Laravel ≥ 8.x;SDK 推荐用 v5.x(对应微信公众号基础接口稳定),避免用太新的 v6+(部分文档未同步,新手易踩坑)
填准配置:只动关键几项
打开 config/easywechat.php,重点填这三块,其余保持默认即可:
-
公众号信息:在微信公众平台 → 开发 → 基本配置里找
AppID和AppSecret,填到official_account.default.app_id和secret - Token 和 EncodingAESKey:如果启用消息加解密,必须填;否则留空也可(但建议开启,更安全)
-
Oauth 配置:设置
scopes(常用['snsapi_userinfo']获取用户昵称头像)、enforce_https(本地开发可设false,上线必须true)
同时在 .env 文件里补上环境变量(更安全):WECHAT_OFFICIAL_ACCOUNT_APPID=你的AppIDWECHAT_OFFICIAL_ACCOUNT_SECRET=你的AppSecret
跑通授权:两行路由搞定登录
不需要写跳转链接、处理回调、验证 state —— 中间件全包了。
- 在
app/Http/Kernel.php的$routeMiddleware数组里注册:'wechat.oauth' => \Overtrue\LaravelWeChat\Middleware\OAuthAuthenticate::class, - 在
routes/web.php中定义受保护路由:Route::get('/user', function () {<br> return view('welcome', ['user' => session('easywechat.oauth_user.default')]);<br> })->middleware('wechat.oauth');
访问 /user,自动跳微信授权页 → 用户确认 → 回跳 → 用户信息存进 session,一步到位。
调试与日志:别让错误静默消失
微信授权失败时,常因域名未备案、JSAPI 安全域名没填、或 HTTPS 强制开启但本地用 http —— 这些错误不会报 PHP 异常,只会白屏或无限重定向。
- 打开日志:确保
config/easywechat.php中'log' => ['default' => 'dev'],并检查storage/logs/easywechat.log是否有写入权限 - 关键检查点:
• 微信公众平台「公众号设置」→ 「功能设置」→ 「JS 接口安全域名」是否填了你当前访问的完整域名(如http://localhost:8000或https://yourdomain.com)
• 本地开发若用http,务必关掉enforce_https,否则跳转地址带 https 导致失败











