springboot中,RSAAutoCertificateConfig 的 privateKeyFromPath 怎么写获取resource下的apiclient_key.pem
smallvq123 opened this issue · 4 comments
smallvq123 commented
错误描述
public static Config payConfig = new RSAAutoCertificateConfig.Builder()
.merchantId(merchantId)
.privateKeyFromPath(privateKeyPath)
.merchantSerialNumber(merchantSerialNumber)
.apiV3Key(apiV3key)
.build();
可以使用相对路劲或者 classpath路劲吗?
重现bug的步骤
1
预期行为
1
导致错误的代码片段
1
操作系统
macOS
Java 版本
java17
wechatpay-java 版本
0.2.9
其他信息
No response
xy-peng commented
如果你的私钥文件放在 resource 下,可以试试以下方式。
第一步,通过 @Value
获取 Resource 对象。
@Value("classpath:apiclient_key.pem")
private Resource resource;
第二步,获取文件的输入流
InputStream inputStream = resource.getInputStream();
第三步,获取私钥传入 RSAAutoCertificateConfig.Builder
public static Config payConfig = new RSAAutoCertificateConfig.Builder()
.merchantId(merchantId)
.privateKey(IoUtil.toString(inputStream))
.merchantSerialNumber(merchantSerialNumber)
.apiV3Key(apiV3key)
.build();
第三步确实不方便,在 RSAAutoCertificateConfig.Builder
加入一个从 InputStream 设置私钥的方法会好。
另,纯手写的代码,未测试,有问题请反馈。
chenxin1215 commented
IoUtil是哪个包下面的?
BrightFutureSugar commented
@value("classpath:apiclient_key.pem")
private Resource resource;
这样也是找不到文件的