请问我使用 sdk 调用的下单的时候,总是返回以下错误是怎么回事?publicKeyId[PUB_KEY_ID_0113214043012xxxxxxxxxxx] and serialNumber[7B77373C3A93AA83xxxxxxxxxxxxxxxxxx] are not equal
返回的 Wechatpay-Serial 应该是 publicKeyId 啊,使用下面方式的时候这里传的也是 publicKeyId
// 可以根据实际情况使用publicKeyFromPath或publicKey加载公钥
2 Config config =
3 new RSAPublicKeyConfig.Builder()
4 .merchantId("1900007291") //微信支付的商户号
5 .privateKeyFromPath("/Users/yourname/yourpath/apiclient_key.pem") // 商户API证书私钥的存放路径
6 .publicKeyFromPath("/Users/yourname/yourpath/pub_key.pem") //微信支付公钥的存放路径
7 .publicKeyId("PUB_KEY_ID_00000000000000000000000000000000") //微信支付公钥ID
8 .merchantSerialNumber("5157F09EFDC096DE15EBE81A47057A72********") //商户API证书序列号
9 .apiV3Key("F09E**") //APIv3密钥
10 .build();
为什么下单返回的header里的Wechatpay-Serial变成了序列号,什么原因?之前用的是v2,第一次用v3版本,按道理不会用到平台证书啊。
这个商户号目前还处在平台证书切换公钥的过程中,请参考指引 调v3接口时要在请求头传公钥ID,这样给你应答时就也会用公钥https://pay.weixin.qq.com/doc/v3/partner/4012925289
你只是申请了公钥ID和文件,申请阶段公钥是不生效的,只有点击更换支付公钥按钮才会生效
平台证书切换微信支付公钥期间,需要同时配置平台证书和微信支付公钥