基础支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合单支付
付款码支付
经营能力
微信支付分
支付即服务
行业方案
智慧商圈
微信支付分停车服务
营销工具
代金券
商家券
委托营销
消费卡
支付有礼
小程序发券插件
H5发券
图片上传(营销专用)
现金红包
资金应用
商家转账到零钱
分账
风险合规
消费者投诉2.0
其他能力
清关报关
图片上传
视频上传
微信支付平台证书

平台证书更新指引

从2018年6月起,微信支付开始在微信支付分、营销代金券等API,使用权威CA颁发的平台证书标识微信支付的身份信息。出于合规和安全性考虑,权威CA为颁发的平台证书设置了有效期,商户需在证书过期前进行更新操作。本文档详细描述了微信支付平台证书更换的机制,以及提供实现建议。


平滑切换

我们提供以下的机制,帮助商户在平台证书更新时实现平滑切换:

1.下载新平台证书。我们将在旧证书过期前10天生成新证书。商户可使用平台证书下载API 下载新平台证书,并在旧证书过期前5-10天部署新证书。

2.兼容使用新旧平台证书。旧证书过期前5天至过期当天,新证书开始逐步放量用于应答和回调的签名。商户需根据证书序列号,使用对应版本的平台证书。(我们在所有API应答和回调的HTTP头部Wechatpay-Serial,声明了此次签名所对应的平台证书的序列号。)

最佳实践

由于旧证书过期前的5天内,微信支付会同时使用新旧证书,因此为实现新老证书的平滑切换,商户系统需支持多平台证书。

方式1

商户需从平台证书下载API获取证书,并将它们部署到生产环境中。线上服务根据报文头部的证书序列号Wechatpay-Serial找到对应的平台证书,再使用其中的公钥进行签名验证。商户需在旧证书过期前5-10天,完成新证书的部署。我们建议:

1.将获取并部署的过程自动化,并设置定时(如每日)任务。这样可以大大降低证书更新时人为因素带给商户系统的风险。

2.使用中控服务统一获取和安全存储证书,其他业务逻辑服务使用的证书均来自于该中控服务,或者直接使用中控服务进行签名验证。

方式2

商户也可以选择“惰性加载”的方式实现平滑切换。当业务逻辑服务上没有证书序列号所对应的证书时,调用API获取对应的平台证书,再进行签名验证或敏感信息加密。为了提高效率,商户可以在短时间内进行适当的缓存。

实现方式,可参考微信支付API v3的Java库wechatpay-apache-httpclient

注意:系统中已有的微信支付平台证书在到达有效期后,商户系统应主动将其作废,避免安全风险。微信支付不会使用过期的证书

应急处理指引

如果商户发现证书即将过期或已经过期,但系统还不支持证书的平滑更换,请参考下列处理方式。

1.使用微信支付wechatpay-apache-httpclient 的商户。请确认已升级到v0.1.5,并主动设置使用AutoUpdateCertificatewsVerifier。请参考自动更新证书功能

2.若系统已经支持多平台证书,请关注平台证书的有效期。在旧证书过期前5-10天,使用微信支付提供的证书下载工具获取新证书,并部署至生产环境。

3.若系统只支持一份平台证书,请使用联系微信支付的技术支持同事。我们将协助你完成证书的切换。



技术咨询

文档反馈