Q1、平台证书,与API证书有什么异同
A:
Q2、更换平台证书是否收费
A:不收费。
Q3、灰度工具是什么
A:灰度工具由微信支付在商户平台提供,可以由商户超管、安全联系人操作。商户可以通过工具来设置新平台证书的使用比例。工具只影响v3接口的验签场景,不影响v3的敏感信息加密,及非v3接口。建议给研发负责人配置安全联系人的角色以便进行灰度。
Q3:怎么判断接口是否为v3版本的
A:接口地址以“api.mch.weixin.qq.com/v3/”开头的即为v3版本接口,只以“api.mch.weixin.qq.com/”开头的则不是。
Q4、平台证书的平滑切换是指什么
A:平台证书临期时,微信支付会提前给商户生成新证书,此时商户号下就有新旧两份平台证书。微信支付给商户返回应答或回调时,会随机使用其中一份,并在header中声明所用证书的序列号(Wechatpay-Serial),商户收到后应当用对应的证书来完成签名验证。
商户需要实现自动获取平台证书的能力,并且收到微信应答或回调时,能够识别Wechatpay-Serial,并拉取对应证书完成验签。这样则是实现了平台证书的平滑切换,每次到期更换时都不需要人工介入。
Q5、平台证书的手动更换是指什么
A:手动更换是指商户下载平台证书后,停机、或者在交易量少的时间只部署新证书到商户的系统,并使用微信支付提供的灰度工具,设定验签场景100%使用新平台证书。
手动更换期间容易因为证书不符造成验签失败,影响商户业务。因为建议要参考微信支付官方SDK实现平滑切换的能力。如证书到期前来不及实现,可以把手动更换作为临时方案。
Q6、新平台证书什么时间生成,生成后是否立即开始使用
A:
1、平台证书有效期超过210天的:默认在到期前210天时只生成新证书,但调下载接口时不返回新证书。过期前180天开始,调下载接口会返回新旧两份证书。
2、有效期不足210天
a)没有平台证书调用记录,默认不生成新证书。
b)有平台证书调用记录,调用量较小、或不具备自动下载证书策略 等风险较小的商户,会批量提前一月左右生成新平台证书
c)有调用记录,且交易量较大、有使用微信支付SDK,商户需要联系技术支持同学并提供使用平台证书相关策略,技术支持同学评估后登记手动生成新平台证书。
3、新平台证书生成后
a)敏感信息加密场景可以立即开始使用
b)验签场景默认全量使用旧证书,商户需要通过灰度工具设置使用新证书的比例。
Q7、商户误选了自动灰度,能否切换为手动灰度
A:距离旧证书过期时间超过 90 天就登记生成新证书的商户,默认走自动灰度
商户想要手动灰度的,可以等开启自动灰度那天上午 10 点后,先终止灰度,然后再选手动灰度
并且商户自动灰度后,终止后再选择的,就是只有手动灰度
Q8、证书到期后是否必须更换
A:有相关接口调用就必须使用有效期内的证书。暂时没有v3版本接口调用的,可以不用更换证书,等后续使用时再申请、更换也可以。
Q9、在商户平台如何查看证书
A:商户平台 → 账户中心 → API安全 → 商户API证书 / 平台证书 → 管理证书
Q10、如何判断商户收到的回调、应答后,需要用哪份平台证书来验签
A:微信在返回应答、回调给商户时,在header头指定了验签所需平台证书的序列号(Wechatpay-Serial)。
Q11、更换平台证书,是否需要同步更新API证书、APIv2密钥、APIv3密钥
A:API证书及平台证书的有效期单独计算,不需要同步更新。APIv2密钥和APIv3密钥没有有效期限制,商户没有特殊需求可以不用更换。
Q12、有新旧两份平台证书时,平台证书获取接口返回证书的顺序是否固定
A:返回顺序不固定。请以下载平台证书接口返回的证书弃用时间(expire_time)或证书启用时间(effective_time)判断新旧证书。
Q13、使用了微信官方SDK,是否已经具备平滑切换能力
A:1、java非apache版本:>=0.2.3版本,且使用了RSAAutoCertificateConfig配置类,才支持自动下载并且平滑切换
2、java apache版本:>=0.4.0版本,且使用了 CertificatesManager.getVerifier(merchantId)定期更新平台证书功能,则支持自动下载且平滑切换
3、php sdk不具备平滑切换能力
4、go需要>=0.2.1版本,且使用了opts := []core.ClientOption{option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),} 才支持自动下载且平滑切换