| 变量名 | 说明 | 必填 |
|---|---|---|
WECHAT_APP_ID | 公众号 AppID | 是 |
WECHAT_APP_SECRET | 公众号 AppSecret | 是 |
WECHAT_TOKEN | 服务器配置 Token(消息回调校验用) | 消息回调必填 |
WECHAT_AES_KEY | 消息加解密密钥(安全模式) | 否 |
WECHAT_USE_STABLE_ACCESS_TOKEN | 是否使用稳定版 AccessToken,默认 true | 否 |
配置文件位于 config/services.php,键名为
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 网络通信检测 | POST | /wechat/check | 调用微信网络检测接口 |
| 跳转微信授权 | GET | /wechat/auth | 标准网页授权入口(snsapi_userinfo) |
| 授权回调 | GET | /wechat/auth-callback | 标准授权回调地址 |
| 授权重定向 | GET | /wechat/authorize-redirect/{redirect_uri?} | 带自定义回跳地址的授权中转 |
| 授权代理 | GET | /wechat/authorize-proxy/{redirect_uri?} | 纯 URL 拼接式授权代理 |
| 获取用户信息 | GET | /wechat/user-info | 通过 code 换取用户信息 |
| 获取 AccessToken | GET | /wechat/token | 获取公众号全局 AccessToken |
| 消息回调 | ANY | /wechat/serve | 微信服务器配置的消息/事件接收地址 |
/wechat/auth/wechat/auth-callback?code=xxx/wechat/authorize-redirect?redirect_uri={你的业务回调地址}&scope=snsapi_userinforedirect_uri 为明文的业务回调地址,需 URL 编码scope 可选,默认 snsapi_basecode 参数code(作为 wx_code 参数)拼接到原始 redirect_uri 后,重定向回业务系统:{redirect_uri}?wx_code=xxx&state=xxxredirect_uri在 URL 路径中传递时使用 Base64 URL 安全编码(base64_urlencode),避免特殊字符问题。
appid、redirect_uri、response_type、scope、state 等。https://your-domain.com/wechat/serveWECHAT_TOKEN 一致WECHAT_AES_KEY 一致( 明文模式可留空)| 微信事件 | Laravel 事件类 | 是否异步队列 | 说明 |
|---|---|---|---|
subscribe | WechatSubscribed | 是 | 新用户关注公众号 |
subscribe(带 EventKey) | WechatScan | 否 | 扫描带参数二维码关注 |
unsubscribe | WechatUnsubscribed | 是 | 用户取消关注 |
SCAN | WechatScan | 否 | 已关注用户扫描二维码 |
事件均实现 ShouldHandleEventsAfterCommit,确保在数据库事务提交后才触发。
app/Providers/EventServiceProvider.php 中注册监听器,或使用属性注解:.env 文件中是否设置了 WECHAT_APP_ID 和 WECHAT_APP_SECRET。WECHAT_TOKEN 与微信后台服务器配置中的 Token 完全一致redirect_uri 需要 URL 编码state 参数建议携带业务校验值,防止 CSRF 攻击