fix: 证书使用 String、Content 格式时,验证器未正确初始化;新商户号无平台证书,初始化验证器抛出异常,导致v3请求构造异常 by holylcd · Pull Request #3547 · binarywang/WxJava
提交的代码,确实是优先使用平台证书,然后使用公钥。 我看公钥验签器的实现,用到平台证书验签器,就沿用了旧逻辑。
@Molzx
我没有平台证书切换公钥的商户号,优先用公钥验签器,没法测试造成的影响。
商户号从平台证书切换公钥,使用公钥比例需要100%,才可以切换吗?
切换公钥这里有两个比例,一个是回调使用公钥比例,一个是应答使用公钥比例。如我上图所示。需要这两个比例都达到100%的时候,才可以废弃平台证书,完全切换到公钥。
现在的代码适合“回调使用公钥比例”不是100%的时候,“回调使用公钥比例”不是100%的时候,会同时存在平台证书和公钥的使用,这一块的代码是没有问题的,是还需要平台证书的。
当“回调使用公钥比例”达到100%的时候,这个时候其实是不再需要平台证书的处理了,只需要关注“应答使用公钥比例”,而
应答使用公钥比例=近7天用微信支付公钥调接口次数/近7天v3接口总调用次数。
我看代码平台证书验签器,里面是会默认一个小时更新一次平台证书,这就导致了获取平台证书这一个v3接口一直在调用,而且还没有使用公钥,从而导致“应答使用公钥比例”这个比例卡住了,一直都没有变化。
我试过把平台证书验签器这一块代码直接注释掉,实际表示是正常的,所以这一块可能要加个开关配置或者怎么调整的,当“回调使用公钥比例”达到100%的时候,可以手动设置仅使用公钥验签啥的。
