diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
index f166a2b24..70fd3301d 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaMsgService.java
@@ -1,13 +1,14 @@
package cn.binarywang.wx.miniapp.api;
-import cn.binarywang.wx.miniapp.bean.*;
+import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
+import cn.binarywang.wx.miniapp.bean.WxMaUpdatableMsg;
import com.google.gson.JsonObject;
import me.chanjar.weixin.common.error.WxErrorException;
/**
- *
* 消息发送接口
- *
*
* @author Binary Wang
*/
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
index 1a2ca1ea6..9c0fc6722 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java
@@ -243,6 +243,10 @@ public abstract class BaseWxMaServiceImpl implements WxMaService, RequestH
}
String accessToken = getAccessToken(false);
+ if(StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl())){
+ uri = uri.replace("https://api.weixin.qq.com",this.getWxMaConfig().getApiHostUrl() );
+ }
+
String uriWithAccessToken = uri + (uri.contains("?") ? "&" : "?") + "access_token=" + accessToken;
try {
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/template/WxMaPubTemplateTitleListResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/template/WxMaPubTemplateTitleListResult.java
index d2dacc6e6..6c68b0148 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/template/WxMaPubTemplateTitleListResult.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/template/WxMaPubTemplateTitleListResult.java
@@ -22,7 +22,8 @@ public class WxMaPubTemplateTitleListResult implements Serializable {
}
@Data
- public static class TemplateItem {
+ public static class TemplateItem implements Serializable {
+ private static final long serialVersionUID = 6888726696879905332L;
private Integer type;
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java
index 6854c87e7..c1ad10682 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaConfig.java
@@ -1,10 +1,10 @@
package cn.binarywang.wx.miniapp.config;
-import java.util.concurrent.locks.Lock;
-
import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
+import java.util.concurrent.locks.Lock;
+
/**
* 小程序配置
*
@@ -219,4 +219,19 @@ public interface WxMaConfig {
*/
boolean autoRefreshToken();
+ /**
+ * 设置自定义的apiHost地址
+ * 具体取值,可以参考https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Interface_field_description.html
+ *
+ * @param apiHostUrl api域名地址
+ */
+ void setApiHostUrl(String apiHostUrl);
+
+ /**
+ * 获取自定义的apiHost地址,用于替换原请求中的https://api.weixin.qq.com
+ * 具体取值,可以参考https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Interface_field_description.html
+ *
+ * @return 自定义的api域名地址
+ */
+ String getApiHostUrl();
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java
index 73104bd36..ffec79141 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaDefaultConfigImpl.java
@@ -2,6 +2,7 @@ package cn.binarywang.wx.miniapp.config.impl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import lombok.Getter;
import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
@@ -14,6 +15,7 @@ import java.util.concurrent.locks.ReentrantLock;
*
* @author Binary Wang
*/
+@Getter
public class WxMaDefaultConfigImpl implements WxMaConfig {
protected volatile String appid;
protected volatile String token;
@@ -49,6 +51,7 @@ public class WxMaDefaultConfigImpl implements WxMaConfig {
protected volatile Lock jsapiTicketLock = new ReentrantLock();
protected volatile Lock cardApiTicketLock = new ReentrantLock();
private volatile ApacheHttpClientBuilder apacheHttpClientBuilder;
+ private String apiHostUrl;
/**
* 会过期的数据提前过期时间,默认预留200秒的时间
@@ -124,7 +127,6 @@ public class WxMaDefaultConfigImpl implements WxMaConfig {
this.jsapiTicketExpiresTime = expiresAheadInMillis(expiresInSeconds);
}
-
@Override
public String getCardApiTicket() {
return this.cardApiTicket;
@@ -274,6 +276,11 @@ public class WxMaDefaultConfigImpl implements WxMaConfig {
return true;
}
+ @Override
+ public void setApiHostUrl(String apiHostUrl) {
+ this.apiHostUrl = apiHostUrl;
+ }
+
@Override
public String getAppid() {
return appid;