瀏覽代碼

#1111 微信支付配置支持接口请求地址的可配置

Binary Wang 5 年之前
父節點
當前提交
7c6ebe66ae

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

@@ -18,6 +18,12 @@ import java.security.KeyStore;
  */
 @Data
 public class WxPayConfig {
+  private static final String DEFAULT_PAY_BASE_URL = "https://api.mch.weixin.qq.com";
+
+  /**
+   * 微信支付接口请求地址域名部分.
+   */
+  private String payBaseUrl = DEFAULT_PAY_BASE_URL;
 
   /**
    * http请求连接超时时间.
@@ -97,6 +103,18 @@ public class WxPayConfig {
   private String httpProxyPassword;
 
   /**
+   * 返回所设置的微信支付接口请求地址域名.
+   * @return 微信支付接口请求地址域名
+   */
+  public String getPayBaseUrl() {
+    if (StringUtils.isEmpty(this.payBaseUrl)) {
+      return DEFAULT_PAY_BASE_URL;
+    }
+
+    return this.payBaseUrl;
+  }
+
+  /**
    * 初始化ssl.
    *
    * @return the ssl context

+ 3 - 4
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java

@@ -47,7 +47,6 @@ import static com.github.binarywang.wxpay.constant.WxPayConstants.TarType;
  * @author <a href="https://github.com/binarywang">Binary Wang</a>
  */
 public abstract class BaseWxPayServiceImpl implements WxPayService {
-  private static final String PAY_BASE_URL = "https://api.mch.weixin.qq.com";
   private static final String TOTAL_FUND_COUNT = "资金流水总笔数";
 
   /**
@@ -89,10 +88,10 @@ public abstract class BaseWxPayServiceImpl implements WxPayService {
   @Override
   public String getPayBaseUrl() {
     if (this.getConfig().isUseSandboxEnv()) {
-      return PAY_BASE_URL + "/sandboxnew";
+      return this.getConfig().getPayBaseUrl() + "/sandboxnew";
     }
 
-    return PAY_BASE_URL;
+    return this.getConfig().getPayBaseUrl();
   }
 
   @Override
@@ -101,7 +100,7 @@ public abstract class BaseWxPayServiceImpl implements WxPayService {
 
     String url = this.getPayBaseUrl() + "/secapi/pay/refund";
     if (this.getConfig().isUseSandboxEnv()) {
-      url = PAY_BASE_URL + "/sandboxnew/pay/refund";
+      url = this.getConfig().getPayBaseUrl() + "/sandboxnew/pay/refund";
     }
 
     String responseContent = this.post(url, request.toXML(), true);