请问我使用 sdk 调用的下单的时候,总是返回以下错误是怎么回事?publicKeyId[PUB_KEY_ID_0113214043012xxxxxxxxxxx] and serialNumber[7B77373C3A93AA83xxxxxxxxxxxxxxxxxx] are not equal 返回的serialNumber应该是publicKeyId啊,我调用的时候这里传的也是publicKeyId publicKeyId(publicKeyId) //微信支付公钥ID 为什么下单返回变成了序列号,什么原因?
微信支付从平台证书切换成微信支付公钥,回调的Wechatpay-Serial总是平台证书序列号正准备从平台证书序列号切换到公钥支付,但是支付回调通知的Wechatpay-Serial【总是】原来的平台证书序列号,而不是以PUB_KEY_ID_开头的公钥。 以下是支付参数: 1、使用RSAPublicKeyConfig构建配置: new RSAPublicKeyConfig.Builder() .merchantId(mchId) //微信支付的商户号 .privateKeyFromPath(mchCertPath) // 商户API证书私钥的存放路径 .publicKeyFromPath(publicKeyPath) //微信支付公钥的存放路径 .publicKeyId(publicKeyId) //微信支付公钥ID .merchantSerialNumber(mchCertSerial) //商户API证书序列号 .apiV3Key(v3Key) //APIv3密钥 .build(); 2、使用拦截器在请求头加上了Wechatpay-Serial: public class WechatPaySerialInterceptor implements Interceptor { private final String publicKeyId; public WechatPaySerialInterceptor(String publicKeyId) { this.publicKeyId = publicKeyId; } @Override public @NotNull Response intercept(Chain chain) throws IOException { Request originalRequest = chain.request(); Request requestWithHeader = originalRequest.newBuilder() .header("Wechatpay-Serial", publicKeyId) .build(); return chain.proceed(requestWithHeader); } } 3、更换进度: [图片]
06-18