常见问题

更新时间:2025.03.04
||

Q:我的商户号用在了多个项目,是不是只要有一个项目完成了公钥的兼容就可以点击【开始更换】按钮,剩余的项目可以在灰度过程中再慢慢实现公钥兼容?

公钥灰度和切换都是按照商户号维度进行的,如果你的商户号在多个项目里使用,请确保你这些项目都按照指引的说明,支持了公钥模式,你才可以点击【开始更换】

Q:从平台证书切换公钥的灰度过程中,是不是平台证书能够正常使用?

公钥灰度不会影响平台证书的使用,但请注意回调场景是由微信随机指定用公钥或者平台证书验签,所以需要做好兼容。在灰度完成后需要在商户平台的公钥页面点击【确认切换】,才能完全切换为公钥方案,此时才不能使用平台证书。

Q: 为什么微信支付公钥的回调进度条已经是100%了,但是应答的进度条还是0%?

A: 回调进度是由微信支付按照比例灰度的,预计7天内完成,应答比例是由商户自己通过请求头的Wechatpay-Serial来控制的,请确认你的请求都添加了Wechatpay-Serial且正确传了微信支付公钥的ID,请参考下面

1curl -X GET \
2https://api.mch.weixin.qq.com/v3/xxx \
3-H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4-H "Accept: application/json" \
5-H "Wechatpay-Serial: PUB_KEY_ID_00000000000000000000000000000000" // 需要增加Wechatpay-Serial请求头,且注意微信支付公钥ID带有PUB_KEY_ID_前缀

Q: 为什么我已经全部切换到微信支付公钥了,但是应答的进度条还不是100%?

A: 

情况 1: 应答使用公钥比例=近7天用微信支付公钥调接口次数/近7天v3接口总调用次数,数据更新频率是1小时,所以当你全量切到微信支付公钥之后还需要等待7天,比例才会变成100%

情况 2:微信支付提供的wechatpay-java中,RSACombinedNotificationConfig会自动调下载平台证书接口。当你的回调比例进度条为 100% 时,应当改为使用RSAPublicKeyNotificationConfig。否则你会有一部分自动下载平台证书的流量导致应答场景不能灰度到100%。

Q: 如何获取微信支付公钥及ID?

商户号的超级管理员或者安全联系人在【商户平台】->【账户中心】->【API安全】->【微信支付公钥】->【管理公钥】页面点击下载,即可获取pem格式的公钥文件。也可以在此页面查询到公钥ID。

(1)账户户中心->API安全

(2)微信支付公钥入口页面

(3)微信支付公钥详情页(点击下载公钥后,可看到公钥ID)

 

 

Q: 平台证书切换微信支付公钥和更换平台证书流程可以同时进行吗?

A: 不能。如果你正在灰度更换新的平台证书,系统将有下面提示,需要停止新平台证书的灰度更换(API安全-平台证书,进入查看平台证书灰度更换情况,请谨慎操作),才能继续进行当前流程。

Q:已经在请求头的wechatpay-serial传了公钥ID,为什么微信返回应答还是用平台证书呢?

A:申请公钥后默认不开启公钥切换,需要在【商户平台】->【账户中心】->【API安全】->【微信支付公钥】->【管理公钥】页面点击开启公钥切换按钮后才可以使用。

Q:微信支付公钥可以有多个吗?

A:每个商户号只有一个微信支付公钥。