企业微信 sdk 需用 easywechat/easywechat 或 wechatpay/wechatpay;手动添加 git 仓库可引入原生 sdk;配置需严格遵循 corp_id 等同级结构、agent_id 为整数、code 5 分钟内单次使用、ssl 证书须正确配置。

composer install 失败提示 wechatdev/wechat 找不到包
企业微信官方 SDK 并没有发布到 Packagist,所以直接 composer require wechatdev/wechat 或类似名字会 404。很多人卡在这一步,以为是网络或配置问题,其实是根本没找对包源。
实操建议:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 用企业微信官方推荐的
wechatpay/wechatpay(仅限支付)或更通用的easywechat/easywechat—— 它支持企业微信(Work驱动),且长期维护、文档全 - 如果必须用原生 SDK,得手动添加仓库:在
composer.json的repositories字段里加 Git 源,例如:"repositories": [{"type": "vcs", "url": "https://github.com/wechatpay-apiv3/wechatpay-php"}] - 别碰网上搜到的“微信SDK_composer”这种非标命名包,大概率是过时 fork 或恶意包
easywechat/easywechat 初始化报错 InvalidArgumentException: config key 'corp_id' is required
这是典型配置漏项。企业微信接口必须显式传 corp_id、secret、agent_id,但文档里容易忽略 corp_id 是顶层键,不是嵌在 work 下的子项。
实操建议:
- 配置数组结构必须是:
[ "corp_id" => "wwxxx", "secret" => "xxx", "agent_id" => 100001, "work" => [] ]
——注意corp_id和work是同级 -
agent_id必须是整数,字符串会静默失败;测试时先用管理后台「应用管理」里看到的 ID,别用自建应用的 ID - 如果走回调通知,
token和aes_key必须和企微后台填的一致,大小写、长度一个都不能错
调用 $app->user->get() 返回空数组或 40029 错误
40029 是“invalid code”,说明前端传来的临时授权码 code 已失效或被重复使用。企业微信的 code 5 分钟过期,且只能换一次 access_token。
实操建议:
- 确保前端调用
wx.miniProgram.navigateTo或location.href跳转时,URL 中的code是最新一次生成的,不要缓存或复用 - 后端收到
code后立刻调用$app->oauth->userFromCode($code),别做其他耗时操作再取 - 调试时用
curl -v直接请求企微接口验证code是否有效,排除 easywechat 封装干扰 - 别把
$app->user->get()当作用户信息兜底方法——它查的是通讯录,不是当前登录用户;要用$app->oauth->userFromCode()换用户身份
本地开发时 EasyWeChat\Kernel\Exceptions\RuntimeException 提示 “cURL error 60”
这是 SSL 证书验证失败,常见于 macOS 或 WAMP 环境,PHP cURL 默认不信任系统 CA 证书,而企业微信接口强制 HTTPS。
实操建议:
- 最安全做法:下载最新
ca-bundle.crt(比如从 curl.se),在php.ini加:curl.cainfo="/path/to/cacert.pem"
- 临时绕过(仅开发):在
config数组里加"guzzle" => ["verify" => false]
,但上线前必须删掉 - 别改 easywechat 源码里的
verify参数——升级后会被覆盖,且容易漏










