mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
🎨 #3128 【微信支付】提供扩展httpclientbuilder的能力
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package com.github.binarywang.wxpay.config;
|
||||
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
|
||||
/**
|
||||
* @author <a href="https://github.com/ifcute">dagewang</a>
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface HttpClientBuilderCustomizer {
|
||||
void customize(HttpClientBuilder var1);
|
||||
}
|
||||
@@ -27,6 +27,7 @@ import java.security.KeyStore;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.Base64;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 微信支付配置
|
||||
@@ -165,6 +166,11 @@ public class WxPayConfig {
|
||||
|
||||
|
||||
private CloseableHttpClient apiV3HttpClient;
|
||||
/**
|
||||
* 支持扩展httpClientBuilder
|
||||
*/
|
||||
private HttpClientBuilderCustomizer httpClientBuilderCustomizer;
|
||||
private HttpClientBuilderCustomizer apiV3HttpClientBuilderCustomizer;
|
||||
/**
|
||||
* 私钥信息
|
||||
*/
|
||||
@@ -283,6 +289,10 @@ public class WxPayConfig {
|
||||
//初始化V3接口正向代理设置
|
||||
HttpProxyUtils.initHttpProxy(wxPayV3HttpClientBuilder, wxPayHttpProxy);
|
||||
|
||||
// 提供自定义wxPayV3HttpClientBuilder的能力
|
||||
Optional.ofNullable(apiV3HttpClientBuilderCustomizer).ifPresent(e -> {
|
||||
e.customize(wxPayV3HttpClientBuilder);
|
||||
});
|
||||
CloseableHttpClient httpClient = wxPayV3HttpClientBuilder.build();
|
||||
|
||||
this.apiV3HttpClient = httpClient;
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
@@ -335,6 +336,12 @@ public class WxPayServiceApacheHttpImpl extends BaseWxPayServiceImpl {
|
||||
httpClientBuilder.setDefaultCredentialsProvider(provider)
|
||||
.setProxy(new HttpHost(this.getConfig().getHttpProxyHost(), this.getConfig().getHttpProxyPort()));
|
||||
}
|
||||
|
||||
// 提供自定义httpClientBuilder的能力
|
||||
Optional.ofNullable(getConfig().getHttpClientBuilderCustomizer()).ifPresent(e -> {
|
||||
e.customize(httpClientBuilder);
|
||||
});
|
||||
|
||||
return httpClientBuilder;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user