EasyWeChat 安装需启用 ext-curl 和 ext-openssl 扩展,包名必须为 overtrue/wechat,配置需严格匹配公众号后台的 app_id、secret、token 及 aes_key,本地调试应使用 php -S 并确保路由与服务器配置正确。

composer install 失败提示 ext-curl 或 ext-openssl 缺失
EasyWeChat 依赖 cURL 和 OpenSSL 扩展,很多本地环境(尤其是 Windows WAMP/XAMPP 或 macOS 默认 PHP)没开这些扩展。不装上,composer require "overtrue/wechat" 直接报错退出,连包都下不来。
- Windows:打开
php.ini,取消注释extension=php_curl.dll和extension=php_openssl.dll,重启 Web 服务 - macOS(Homebrew PHP):
brew install curl-openssl,然后确认php -m | grep curl有输出 - Linux(Ubuntu/Debian):
sudo apt-get install php-curl php-xml php-mbstring,别漏掉php-xml,EasyWeChat 解析 XML 响应要用
require 的包名写成 easywechat 就报错
官方包名不是 easywechat,也不是 wechat,而是 overtrue/wechat —— 这是作者 Overtrue 维护的命名空间。写错就找不到包,Composer 会返回 Could not find package easywechat 这类提示。
- 正确命令:
composer require "overtrue/wechat:~5.0"(推荐 5.x,Laravel 8+ / PHP 7.4+ 兼容) - 如果项目用 Laravel,5.x 版本自带服务提供者自动注册,不用手动加
providers数组 - 别用 4.x:它要求
guzzlehttp/guzzle:^6.0,而新版 Laravel 默认带 Guzzle 7,容易冲突
公众号配置填错导致 Invalid credential, access_token is invalid
这个错误不是 EasyWeChat 的 bug,而是微信接口返回的真实校验失败。90% 情况是 app_id、secret 或 token 三者之一粘贴错了,或者用了测试号的 appid 去调正式号接口。
- 检查配置数组里
app_id和secret是公众号「开发」页里的「AppID」和「AppSecret」,不是「原始 ID」或「二维码参数」 -
token和aes_key(如果启用消息加密)必须和公众号后台填写的完全一致,包括大小写和长度(aes_key必须是 43 位 Base64 字符) - 本地调试时,别用 ngrok 或内网穿透随便生成的域名去配服务器配置——微信只认你填在后台的「服务器地址(URL)」,且必须能被它主动访问到
收不到微信推送,serve 启动后页面空白或 500
EasyWeChat 自带的 serve 命令只是个简易 HTTP 服务,不处理 HTTPS、不支持长连接、也不做日志轮转。生产环境不能用,开发阶段也容易因路径或路由配置错导致 500。
- 先确认入口脚本是否写了
$app->server->serve()->send();,漏掉->send()就没响应,浏览器白屏 - 别把路由写成
/wechat然后访问http://localhost/wechat/—— 微信回调是 POST 到你填的 URL 根路径,必须保证index.php是唯一入口,且 Web 服务器(Nginx/Apache)已正确重写 - 用
php -S localhost:8000跑最简单,但记得加-t public(如果你把入口放public/index.php),否则找不到静态资源或报错











