- 请问我使用 sdk 调用的下单的时候,总是返回以下错误是怎么回事?
请问我使用 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版本,按道理不会用到平台证书啊。 商户后台平台证书已经是过期的。 [图片]
09-25 - 为什么在用sdk 的服务商支付时报空指针异常?
public JsapiService createJsapiService(WxPayMerchant wxPayMerchant) { if (wxPayMerchant == null) { throw new IllegalArgumentException("支付商户信息不能为空"); } String merchantId = wxPayMerchant.getMerchantId(); String cacheKey = merchantId + "_jsapi"; return jsapiServiceCache.computeIfAbsent(cacheKey, k -> { Config config = createWeChatPayConfig(wxPayMerchant); return new JsapiService.Builder().config(config).build(); }); } public Config createWeChatPayConfig(WxPayMerchant wxPayMerchant) { if (wxPayMerchant == null) { throw new IllegalArgumentException("支付商户信息不能为空"); } String merchantId = wxPayMerchant.getMerchantId(); String cacheKey = merchantId + "_config"; return configCache.computeIfAbsent(cacheKey, k -> { try { log.info("创建微信支付配置,商户号: {}", merchantId); RSAAutoCertificateConfig.Builder builder = new RSAAutoCertificateConfig.Builder() .merchantId(merchantId) .merchantSerialNumber(wxPayMerchant.getMerchantSerialNumber() != null ? wxPayMerchant.getMerchantSerialNumber() : "") .apiV3Key(wxPayMerchant.getApiKey()); // 处理证书路径 String certPath = wxPayMerchant.getCertData(); builder.privateKey(certPath); Config config = builder.build(); log.info("微信支付配置创建成功,商户号: {}", merchantId); return config; } catch (Exception e) { log.error("创建微信支付配置失败,商户号: {}", merchantId, e); throw new RuntimeException("创建微信支付配置失败: " + e.getMessage(), e); } }); } // 发起支付请求 PrepayResponse response = jsapiService.prepay(request); 构建支付配置成功,但是在发起prepay请求的时候,报错空指针,这是为什么? [图片]
09-24