Skip to content

Commit fe5430e

Browse files
zhoujiangzibinarywang
authored andcommitted
🎨 【微信支付】修复证书私钥问题
1 parent 2e3865f commit fe5430e

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/WxPayConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,9 @@ public CloseableHttpClient initApiV3HttpClient() throws WxPayException {
263263
throw new WxPayException("请确保apiV3Key值已设置");
264264
}
265265

266+
if(StringUtils.isNotBlank(this.getPrivateKeyString())){
267+
this.setPrivateKeyString(Base64.getEncoder().encodeToString(this.getPrivateKeyString().getBytes()));
268+
}
266269
InputStream keyInputStream = this.loadConfigInputStream(this.getPrivateKeyString(), this.getPrivateKeyPath(),
267270
this.privateKeyContent, "privateKeyPath");
268271
try {

weixin-java-pay/src/test/java/com/github/binarywang/wxpay/config/WxPayConfigTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
package com.github.binarywang.wxpay.config;
22

3+
import com.github.binarywang.wxpay.exception.WxPayException;
4+
import org.bouncycastle.jce.provider.BouncyCastleProvider;
5+
import org.bouncycastle.pqc.jcajce.provider.util.KeyUtil;
36
import org.testng.annotations.Test;
47

8+
import java.security.KeyPair;
9+
import java.security.KeyPairGenerator;
10+
import java.security.SecureRandom;
11+
import java.security.Security;
12+
import java.util.Base64;
13+
514
/**
615
* <pre>
716
* Created by BinaryWang on 2017/6/18.
@@ -44,4 +53,20 @@ public void testInitSSLContext_base64() throws Exception {
4453
payConfig.setKeyString("MIIKmgIBAzCCCmQGCS...");
4554
payConfig.initSSLContext();
4655
}
56+
57+
58+
@Test
59+
public void testInitApiV3HttpClient() throws Exception {
60+
Security.addProvider(new BouncyCastleProvider());
61+
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA","BC");
62+
keyPairGenerator.initialize(2048,new SecureRandom());
63+
KeyPair keyPair = keyPairGenerator.genKeyPair();
64+
byte[] encoded = keyPair.getPrivate().getEncoded();
65+
// 模拟用户配置
66+
String privateKeyString = Base64.getEncoder().encodeToString(encoded);
67+
payConfig.setPrivateKeyString(privateKeyString);
68+
payConfig.setApiV3Key("Test");
69+
payConfig.initApiV3HttpClient();
70+
}
71+
4772
}

0 commit comments

Comments
 (0)