wechatpay-apiv3/wechatpay-java

商户证书序列号获取不到

Closed this issue · 1 comments

错误描述

我是在商户平台下载证书了,也生成了证书,但是我没有拿到 商户证书序列号,按你们SDK文档描述,感觉代码上也有错误。
具体原因如下:

    Config config =
            new RSAAutoCertificateConfig.Builder()
                    .merchantId(merchantId)
                    .privateKeyFromPath(privateKeyPath)
                    .merchantSerialNumber(merchantSerialNumber)
                    .apiV3Key(apiV3key)
                    .build();

PrivacyEncryptor encryptor = config.createEncryptor();
String wechatPayCertificateSerialNumber = encryptor.getWechatpaySerial();

config 对象在初始化时候需要使用这个商户证书序列号,但是我拿不到,而你们提供的代码,获取又是从config里面获取。config 可能都会初始化失败。又何谈获取数据? 另外你们文档 PrivacyEncryptor 这个返回值的类型写的是 PrivateEncryptor ,而实际上根本就没提供这个类。

重现bug的步骤

Config config =
new RSAAutoCertificateConfig.Builder()
.merchantId(merchantId)
.privateKeyFromPath(privateKeyPath)
.merchantSerialNumber(merchantSerialNumber)
.apiV3Key(apiV3key)
.build();
PrivacyEncryptor encryptor = config.createEncryptor();
String wechatPayCertificateSerialNumber = encryptor.getWechatpaySerial();

预期行为

理论上这里获取 商户证书序列号 不应该从config 获取,而且获取 商户证书序列号 应该是在 定义config对象之前。

导致错误的代码片段

No response

操作系统

win10

Java 版本

java8

wechatpay-java 版本

com.github.wechatpay-apiv3 wechatpay-java 0.2.9

其他信息

com.github.wechatpay-apiv3 wechatpay-java 0.2.9
  1. 你混淆了商户证书和微信支付平台证书。两者的解释先请看微信支付文档中心的 证书和私钥
  2. 如何获取商户证书序列号,请看 如何查看证书序列号?
  3. 【 PrivacyEncryptor 这个返回值的类型写的是 PrivateEncryptor】这里文档确实写错了,我改正下。