diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceHttpClientImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceHttpClientImpl.java
index c69772a5d8..6914977861 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceHttpClientImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceHttpClientImpl.java
@@ -6,6 +6,7 @@
 import me.chanjar.weixin.common.util.http.HttpType;
 import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
 import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpHost;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -60,7 +61,12 @@ public HttpType getRequestType() {
 
   @Override
   protected String doGetAccessTokenRequest() throws IOException {
-    String url = String.format(WxMaService.GET_ACCESS_TOKEN_URL, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
+
+    String url = StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl()) ?
+      WxMaService.GET_ACCESS_TOKEN_URL.replace("https://api.weixin.qq.com", this.getWxMaConfig().getApiHostUrl()) :
+      WxMaService.GET_ACCESS_TOKEN_URL;
+    
+    url = String.format(url, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
 
     HttpGet httpGet = null;
     CloseableHttpResponse response = null;
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceJoddHttpImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceJoddHttpImpl.java
index 984d0d3fe6..90ee6516ae 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceJoddHttpImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceJoddHttpImpl.java
@@ -7,6 +7,7 @@
 import jodd.http.ProxyInfo;
 import jodd.http.net.SocketHttpConnectionProvider;
 import me.chanjar.weixin.common.util.http.HttpType;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 
@@ -45,7 +46,11 @@ public HttpType getRequestType() {
 
   @Override
   protected String doGetAccessTokenRequest() throws IOException {
-    String url = String.format(WxMaService.GET_ACCESS_TOKEN_URL, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
+    String url = StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl()) ?
+      WxMaService.GET_ACCESS_TOKEN_URL.replace("https://api.weixin.qq.com", this.getWxMaConfig().getApiHostUrl()) :
+      WxMaService.GET_ACCESS_TOKEN_URL;
+
+    url = String.format(url, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
     HttpRequest request = HttpRequest.get(url);
     if (this.getRequestHttpProxy() != null) {
       SocketHttpConnectionProvider provider = new SocketHttpConnectionProvider();
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceOkHttpImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceOkHttpImpl.java
index a36444d97a..0fa49d9d07 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceOkHttpImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceOkHttpImpl.java
@@ -5,6 +5,7 @@
 import me.chanjar.weixin.common.util.http.HttpType;
 import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
 import okhttp3.*;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 import java.util.Objects;
@@ -63,7 +64,11 @@ public HttpType getRequestType() {
 
   @Override
   protected String doGetAccessTokenRequest() throws IOException {
-    String url = String.format(WxMaService.GET_ACCESS_TOKEN_URL, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
+    String url = StringUtils.isNotEmpty(this.getWxMaConfig().getApiHostUrl()) ?
+      WxMaService.GET_ACCESS_TOKEN_URL.replace("https://api.weixin.qq.com", this.getWxMaConfig().getApiHostUrl()) :
+      WxMaService.GET_ACCESS_TOKEN_URL;
+
+    url = String.format(url, this.getWxMaConfig().getAppid(), this.getWxMaConfig().getSecret());
     Request request = new Request.Builder().url(url).get().build();
     try (Response response = getRequestHttpClient().newCall(request).execute()) {
       return Objects.requireNonNull(response.body()).string();