当我们使用wechatPayCertificates生成RSA配置类时一定要注意。这里的证书是微信平台证书(通过Certificate Downloader工具获取),不是商户API证书(微信配置后台获取)
Certificate Downloader jar获取地址:https://github.com/wechatpay-apiv3/CertificateDownloader
下载Certificate Downloader jar 包后,如果你没有证书,第一次下载证书的命令如下,具体说明请看 常见问题-第一次下载证书:
java -jar CertificateDownloader.jar -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath}
如果你已有微信支付平台证书,完整命令如:
java -jar CertificateDownloader.jar -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo
操作完成之后会获取到正确的证书文件了。
配置RSA代码如下:
InputStream keyStream = this.getClass().getResourceAsStream(this.cert);
String keyStr = IOUtils.toString(keyStream, StandardCharsets.UTF_8);
//调用本地证书
InputStream certStream = this.getClass().getResourceAsStream(this.getKeyPath());
String certStr = IOUtils.toString(certStream, StandardCharsets.UTF_8);
this.config =
new RSAConfig.Builder()
.merchantId(this.getMchID())
.privateKey(keyStr)
.merchantSerialNumber(this.getMerchantSerialNumber())
.wechatPayCertificates(certStr)
.build();