首先确定你需要开通的是微信支付内地商户(适用于大陆客户)还是微信支付香港(WeChat Pay HK,适用于港澳台用户)。一般流程是:准备公司营业执照、银行账户与法人信息,在线提交申请并完成企业资质审核,绑定结算银行账号。即便网站托管在香港服务器上,只要资质满足,均可申请;但内地商户通常要求中国内地银行账号与税务信息。
API v2常用的是商户平台下载的apiclient_cert/apiclient_key(通常需要转为PEM格式);API v3采用RSA证书签名机制,需要生成商户私钥并在商户平台上传公钥,同时获取微信平台证书序列号并做本地信任配置。无论哪种方式,证书和私钥不得放在webroot,建议放在受限目录并设置仅应用进程可读的权限。
APIv3以RSA+SHA256签名替代了部分旧的MD5/HMAC方式,回调验证需要使用微信平台证书来校验签名。此外,APIv3鼓励使用HTTPS/TLS1.2+、证书序列号比对、时间同步(NTP)和回调重放防护。总体上,APIv3在支付安全上更严密,建议尽快迁移并严格按微信文档完成证书与回调验签配置。
不要在源码仓库或公开目录存放私钥;使用操作系统权限(chown/chmod)限制访问,最好运行进程为非root用户。推荐使用云厂商密钥管理(KMS)、硬件安全模块(HSM)或容器Secret机制(Docker/K8s Secret)来管理密钥。定期旋转密钥、记录访问审计并对证书进行备份和加密存储是必要的运维策略。
遇到回调失败先检查时间同步、证书序列号是否匹配、私钥是否正确加载、回调验签代码是否按文档实现。可以用openssl s_client验证TLS连接,用curl或Postman模拟微信回调并查看响应码。开启详细日志记录验签失败原因,利用微信商户平台沙箱或通知测试工具反复验证,并留意IP白名单或防火墙是否阻断微信服务器访问。