diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java index b87b3168a..877688735 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java @@ -263,6 +263,9 @@ public class WxPayConfig { throw new WxPayException("请确保apiV3Key值已设置"); } + if(StringUtils.isNotBlank(this.getPrivateKeyString())){ + this.setPrivateKeyString(Base64.getEncoder().encodeToString(this.getPrivateKeyString().getBytes())); + } InputStream keyInputStream = this.loadConfigInputStream(this.getPrivateKeyString(), this.getPrivateKeyPath(), this.privateKeyContent, "privateKeyPath"); try { diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java index 5a506e72f..72750e01c 100644 --- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java +++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java @@ -1,7 +1,16 @@ package com.github.binarywang.wxpay.config; +import com.github.binarywang.wxpay.exception.WxPayException; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.pqc.jcajce.provider.util.KeyUtil; import org.testng.annotations.Test; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.SecureRandom; +import java.security.Security; +import java.util.Base64; + /** *
* Created by BinaryWang on 2017/6/18.
@@ -44,4 +53,20 @@ public class WxPayConfigTest {
payConfig.setKeyString("MIIKmgIBAzCCCmQGCS...");
payConfig.initSSLContext();
}
+
+
+ @Test
+ public void testInitApiV3HttpClient() throws Exception {
+ Security.addProvider(new BouncyCastleProvider());
+ KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA","BC");
+ keyPairGenerator.initialize(2048,new SecureRandom());
+ KeyPair keyPair = keyPairGenerator.genKeyPair();
+ byte[] encoded = keyPair.getPrivate().getEncoded();
+ // 模拟用户配置
+ String privateKeyString = Base64.getEncoder().encodeToString(encoded);
+ payConfig.setPrivateKeyString(privateKeyString);
+ payConfig.setApiV3Key("Test");
+ payConfig.initApiV3HttpClient();
+ }
+
}