|
@@ -1,10 +1,7 @@
|
|
|
package com.yonge.toolset.payment.original.wx.config;
|
|
|
|
|
|
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
|
|
|
-import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
|
|
|
-import com.wechat.pay.contrib.apache.httpclient.auth.Verifier;
|
|
|
-import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Credentials;
|
|
|
-import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Validator;
|
|
|
+import com.wechat.pay.contrib.apache.httpclient.auth.*;
|
|
|
import com.wechat.pay.contrib.apache.httpclient.cert.CertificatesManager;
|
|
|
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
|
|
|
import com.yonge.toolset.payment.base.enums.OpenEnum;
|
|
@@ -34,35 +31,50 @@ public class WxpayConfiguration {
|
|
|
* @updateTime 2022/5/12 14:16
|
|
|
* @return: com.alipay.api.AlipayClient
|
|
|
*/
|
|
|
- //@Bean
|
|
|
+ @Bean
|
|
|
public CloseableHttpClient closeableHttpClient() throws Exception{
|
|
|
String merchantId = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_ID).getParamValue();
|
|
|
String merchantSerialNumber = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_SERIAL_NUMBER).getParamValue();
|
|
|
- String merchantPrivateKey = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_PRIVATE_KEY).getParamValue();
|
|
|
+ String privateKey = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_PRIVATE_KEY).getParamValue();
|
|
|
String apiV3Key = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_API_V3_KEY).getParamValue();
|
|
|
|
|
|
- PrivateKey privateKey = PemUtil
|
|
|
- .loadPrivateKey(new ByteArrayInputStream(merchantPrivateKey.getBytes("utf-8")));
|
|
|
+
|
|
|
+ PrivateKey merchantPrivateKey = PemUtil
|
|
|
+ .loadPrivateKey(new ByteArrayInputStream(privateKey.getBytes(StandardCharsets.UTF_8)));
|
|
|
|
|
|
// 获取证书管理器实例
|
|
|
CertificatesManager certificatesManager = CertificatesManager.getInstance();
|
|
|
+
|
|
|
+ WechatPay2Credentials wechatPay2Credentials = new WechatPay2Credentials(merchantId, new PrivateKeySigner(merchantSerialNumber, merchantPrivateKey));
|
|
|
// 向证书管理器增加需要自动更新平台证书的商户信息
|
|
|
certificatesManager.putMerchant(merchantId,
|
|
|
- new WechatPay2Credentials(merchantId,
|
|
|
- new PrivateKeySigner(merchantSerialNumber, privateKey)),
|
|
|
- apiV3Key.getBytes(StandardCharsets.UTF_8)
|
|
|
+ wechatPay2Credentials,
|
|
|
+ apiV3Key.getBytes(StandardCharsets.UTF_8)
|
|
|
);
|
|
|
|
|
|
- //e4128409c23499cf24976233c8327696
|
|
|
-
|
|
|
// 从证书管理器中获取verifier
|
|
|
Verifier verifier = certificatesManager.getVerifier(merchantId);
|
|
|
|
|
|
WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create()
|
|
|
- .withMerchant(merchantId, merchantSerialNumber, privateKey)
|
|
|
+ .withMerchant(merchantId, merchantSerialNumber, merchantPrivateKey)
|
|
|
.withValidator(new WechatPay2Validator(verifier));
|
|
|
|
|
|
return builder.build();
|
|
|
+ /**
|
|
|
+ // 加载商户私钥(privateKey:私钥字符串)
|
|
|
+ PrivateKey merchantPrivateKey = PemUtil
|
|
|
+ .loadPrivateKey(new ByteArrayInputStream(privateKey.getBytes("utf-8")));
|
|
|
+
|
|
|
+ // 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3密钥)
|
|
|
+ AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
|
|
|
+ new WechatPay2Credentials(merchantId, new PrivateKeySigner(merchantSerialNumber, merchantPrivateKey)),apiV3Key.getBytes("utf-8"));
|
|
|
+
|
|
|
+ // 初始化httpClient
|
|
|
+ CloseableHttpClient build = WechatPayHttpClientBuilder.create()
|
|
|
+ .withMerchant(merchantId, merchantSerialNumber, merchantPrivateKey)
|
|
|
+ .withValidator(new WechatPay2Validator(verifier)).build();
|
|
|
+ return build;
|
|
|
+ **/
|
|
|
}
|
|
|
|
|
|
}
|