应安装 composer 后执行 composer require "overtrue/wechat:^7.0",包名非 easywechat/easywechat;需引入 vendor/autoload.php 并验证类加载;微信支付需配置绝对路径的无密码证书文件。

直接装 easywechat 就行,别单独装 composer
很多人搜“Composer怎么安装EasyWeChat”,其实是混淆了工具和包——composer 是 PHP 的依赖管理工具,得先装好它;而 easywechat 是一个第三方 SDK 包,用 composer 装。如果你还没装 composer,先去官网下二进制可执行文件(composer.phar),放进项目根目录或系统 PATH 里,确保终端能运行 composer --version。
确认 composer 可用后,在项目根目录执行:
composer require "overtrue/wechat:^7.0"
注意:^7.0 是当前稳定版(截至 2024 年主流用法),别写成 dev-master 或 *,否则可能拉到不兼容的开发分支。
overtrue/wechat 和旧版 easywechat 名字对不上?
包名早就不叫 easywechat 了。2019 年起作者把命名空间和 Composer 包名都改成了 overtrue/wechat,但 GitHub 仓库名、文档标题、大家口中的“EasyWeChat”还留着老称呼,容易误以为要 composer require easywechat/easywechat——这会报 Package not found 错误。
- 正确包名是
overtrue/wechat,不是easywechat/easywechat - GitHub 地址是
https://github.com/overtrue/wechat,不是easywechat/easywechat - 文档里写的
use EasyWeChat...是命名空间,跟 Composer 包名无关
引入后报 Class 'EasyWeChatFactory' not found
这是自动加载没生效的典型表现,常见于以下几种情况:
- 没在项目入口(比如
index.php)里require 'vendor/autoload.php' - 用了某些框架(如 Laravel)但没清缓存,执行
php artisan config:clear和php artisan cache:clear -
vendor目录权限不对,或被 IDE/编辑器锁住导致 autoload 文件没生成全
最简单的验证方式:在命令行跑一句 php -r "require 'vendor/autoload.php'; var_dump(class_exists('EasyWeChat\Factory'));",输出 bool(true) 才算真正加载成功。
微信支付接口调不通?检查 config 里的证书路径和 key
微信支付(尤其是 JSAPI、APP 支付)必须传真实证书文件路径,不能只靠 base64 字符串或内存内容。SDK 默认会读取 apiclient_cert.pem 和 apiclient_key.pem 这两个文件:
- 路径必须是绝对路径,相对路径(如
./cert/apiclient_cert.pem)在 CLI 环境下容易失效 - 证书文件需由微信商户平台下载,且
.pem必须包含完整内容(从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----) -
key文件不能带密码,如果导出时设了密码,得用 OpenSSL 去掉:openssl rsa -in apiclient_key.pem -out apiclient_key_nopass.pem
配置示例中常看到 'cert_path' => __DIR__.'/cert/apiclient_cert.pem',这里的 __DIR__ 得指向实际存放证书的目录,不是 vendor 里 SDK 自带的 demo 路径。
证书和 key 文件权限建议设为 600,避免日志或错误信息意外暴露私钥内容。











