From 738bcf7755843bd574b00085b60ea37b97582f82 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 11:59:56 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#3739=20=E3=80=90=E5=BC=80=E6=94=BE?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E3=80=91=E8=A1=A5=E5=85=85=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E5=B9=B3=E5=8F=B0=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=BF=AB=E9=80=9F=E9=85=8D=E7=BD=AE=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../open/api/WxOpenComponentService.java | 64 +++++++++++++++++++ .../weixin/open/api/WxOpenMaService.java | 50 +++++++++++++++ .../api/impl/WxOpenComponentServiceImpl.java | 51 +++++++++++++++ .../open/api/impl/WxOpenMaServiceImpl.java | 35 ++++++++++ 4 files changed, 200 insertions(+) diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java index d8e1795e0..eb334f7b1 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenComponentService.java @@ -203,6 +203,21 @@ public interface WxOpenComponentService { String COMPONENT_CLEAR_QUOTA_URL = "https://api.weixin.qq.com/cgi-bin/component/clear_quota/v2"; + /** + * 设置第三方平台服务器域名 + */ + String API_MODIFY_WXA_SERVER_DOMAIN = "https://api.weixin.qq.com/cgi-bin/component/modify_wxa_server_domain"; + + /** + * 获取第三方平台业务域名校验文件 + */ + String API_GET_DOMAIN_CONFIRM_FILE = "https://api.weixin.qq.com/cgi-bin/component/get_domain_confirmfile"; + + /** + * 设置第三方平台业务域名 + */ + String API_MODIFY_WXA_JUMP_DOMAIN = "https://api.weixin.qq.com/cgi-bin/component/modify_wxa_jump_domain"; + /** * Gets wx mp service by appid. * @@ -1117,4 +1132,53 @@ public interface WxOpenComponentService { */ WxOpenResult applySetOrderPathInfo(WxOpenMaApplyOrderPathInfo info) throws WxErrorException; + /** + * 设置第三方平台服务器域名 + * 文档地址 + * + * @param action add添加, delete删除, set覆盖, get获取 + * @param requestDomains request 合法域名;当 action 是 get 时不需要此字段 + * @param wsRequestDomains socket 合法域名;当 action 是 get 时不需要此字段 + * @param uploadDomains uploadFile 合法域名;当 action 是 get 时不需要此字段 + * @param downloadDomains downloadFile 合法域名;当 action 是 get 时不需要此字段 + * @param tcpDomains tcp 合法域名;当 action 是 get 时不需要此字段 + * @param udpDomains udp 合法域名;当 action 是 get 时不需要此字段 + * @return the wx open ma domain result + * @throws WxErrorException the wx error exception + */ + WxOpenMaDomainResult modifyWxaServerDomain(String action, List requestDomains, List wsRequestDomains, + List uploadDomains, List downloadDomains, + List udpDomains, List tcpDomains) throws WxErrorException; + + /** + * 获取第三方平台业务域名校验文件 + * 文档地址 + * + * @return 业务域名校验文件信息 + * @throws WxErrorException 操作失败时抛出,具体错误码请看文档 + */ + WxOpenMaDomainConfirmFileResult getDomainConfirmFile() throws WxErrorException; + + /** + * 设置第三方平台业务域名 + * 文档地址 + * + * @param action add添加, delete删除, set覆盖, get获取 + * @param domainList the domain list + * @return 直接返回字符串 + * @throws WxErrorException the wx error exception + */ + String modifyWxaJumpDomain(String action, List domainList) throws WxErrorException; + + /** + * 设置第三方平台业务域名 + * 文档地址 + * + * @param action add添加, delete删除, set覆盖, get获取 + * @param domainList the domain list + * @return web view domain info + * @throws WxErrorException the wx error exception + */ + WxOpenMaWebDomainResult modifyWxaJumpDomainInfo(String action, List domainList) throws WxErrorException; + } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java index fef85d7f2..ab229ba53 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenMaService.java @@ -32,6 +32,11 @@ public interface WxOpenMaService extends WxMaService { */ String API_MODIFY_DOMAIN = "https://api.weixin.qq.com/wxa/modify_domain"; + /** + * 快速配置小程序服务器域名 + */ + String API_MODIFY_DOMAIN_DIRECTLY = "https://api.weixin.qq.com/wxa/modify_domain_directly"; + /** * 设置小程序业务域名(仅供第三方代小程序调用) *
@@ -44,6 +49,11 @@ public interface WxOpenMaService extends WxMaService {
    */
   String API_SET_WEBVIEW_DOMAIN = "https://api.weixin.qq.com/wxa/setwebviewdomain";
 
+  /**
+   * 快速配置小程序业务域名
+   */
+  String API_SET_WEBVIEW_DOMAIN_DIRECTLY = "https://api.weixin.qq.com/wxa/setwebviewdomain_directly";
+
   /**
    * 获取业务域名校验文件(仅供第三方代小程序调用)
    */
@@ -310,6 +320,24 @@ public interface WxOpenMaService extends WxMaService {
                                     List uploadDomains, List downloadDomains,
                                     List udpDomains, List tcpDomains) throws WxErrorException;
 
+  /**
+   * 快速配置小程序服务器域名
+   * 文档地址
+   *
+   * @param action           add添加, delete删除, set覆盖, get获取
+   * @param requestDomains   request 合法域名;当 action 是 get 时不需要此字段
+   * @param wsRequestDomains socket 合法域名;当 action 是 get 时不需要此字段
+   * @param uploadDomains    uploadFile 合法域名;当 action 是 get 时不需要此字段
+   * @param downloadDomains  downloadFile 合法域名;当 action 是 get 时不需要此字段
+   * @param tcpDomains       tcp 合法域名;当 action 是 get 时不需要此字段
+   * @param udpDomains       udp 合法域名;当 action 是 get 时不需要此字段
+   * @return the wx open ma domain result
+   * @throws WxErrorException the wx error exception
+   */
+  WxOpenMaDomainResult modifyDomainDirectly(String action, List requestDomains, List wsRequestDomains,
+                                            List uploadDomains, List downloadDomains,
+                                            List udpDomains, List tcpDomains) throws WxErrorException;
+
   /**
    * 获取小程序的业务域名
    *
@@ -346,6 +374,28 @@ public interface WxOpenMaService extends WxMaService {
    */
   WxOpenMaWebDomainResult setWebViewDomainInfo(String action, List domainList) throws WxErrorException;
 
+  /**
+   * 快速配置小程序业务域名
+   * 文档地址
+   *
+   * @param action     add添加, delete删除, set覆盖, get获取
+   * @param domainList the domain list
+   * @return 直接返回字符串
+   * @throws WxErrorException the wx error exception
+   */
+  String setWebViewDomainDirectly(String action, List domainList) throws WxErrorException;
+
+  /**
+   * 快速配置小程序业务域名
+   * 文档地址
+   *
+   * @param action     add添加, delete删除, set覆盖, get获取
+   * @param domainList the domain list
+   * @return web view domain info
+   * @throws WxErrorException the wx error exception
+   */
+  WxOpenMaWebDomainResult setWebViewDomainDirectlyInfo(String action, List domainList) throws WxErrorException;
+
   /**
    * 获取业务域名校验文件
    *
diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java
index 80da912be..18940c4d2 100644
--- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java
+++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java
@@ -1307,4 +1307,55 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
     String response = post(OPEN_APPLY_SET_ORDER_PATH_INFO, gson.toJson(info));
     return WxOpenGsonBuilder.create().fromJson(response, WxOpenResult.class);
   }
+
+  @Override
+  public WxOpenMaDomainResult modifyWxaServerDomain(String action, List requestDomains, List wsRequestDomains,
+                                                    List uploadDomains, List downloadDomains,
+                                                    List udpDomains, List tcpDomains) throws WxErrorException {
+    JsonObject requestJson = new JsonObject();
+    requestJson.addProperty("action", action);
+    if (!"get".equals(action)) {
+      requestJson.add("requestdomain", toJsonArray(requestDomains));
+      requestJson.add("wsrequestdomain", toJsonArray(wsRequestDomains));
+      requestJson.add("uploaddomain", toJsonArray(uploadDomains));
+      requestJson.add("downloaddomain", toJsonArray(downloadDomains));
+      requestJson.add("udpdomain", toJsonArray(udpDomains));
+      requestJson.add("tcpdomain", toJsonArray(tcpDomains));
+    }
+
+    String response = post(API_MODIFY_WXA_SERVER_DOMAIN, requestJson.toString());
+    return WxOpenGsonBuilder.create().fromJson(response, WxOpenMaDomainResult.class);
+  }
+
+  @Override
+  public WxOpenMaDomainConfirmFileResult getDomainConfirmFile() throws WxErrorException {
+    String responseContent = post(API_GET_DOMAIN_CONFIRM_FILE, "{}");
+    return WxOpenMaDomainConfirmFileResult.fromJson(responseContent);
+  }
+
+  @Override
+  public String modifyWxaJumpDomain(String action, List domainList) throws WxErrorException {
+    JsonObject requestJson = new JsonObject();
+    requestJson.addProperty("action", action);
+    if (!"get".equals(action)) {
+      requestJson.add("webviewdomain", toJsonArray(domainList));
+    }
+    return post(API_MODIFY_WXA_JUMP_DOMAIN, requestJson.toString());
+  }
+
+  @Override
+  public WxOpenMaWebDomainResult modifyWxaJumpDomainInfo(String action, List domainList) throws WxErrorException {
+    String response = this.modifyWxaJumpDomain(action, domainList);
+    return WxOpenGsonBuilder.create().fromJson(response, WxOpenMaWebDomainResult.class);
+  }
+
+  private JsonArray toJsonArray(List list) {
+    JsonArray jsonArray = new JsonArray();
+    if (list != null) {
+      for (String item : list) {
+        jsonArray.add(item);
+      }
+    }
+    return jsonArray;
+  }
 }
diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java
index 85ce41fd0..da9f910eb 100644
--- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java
+++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java
@@ -113,6 +113,25 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ
     return WxMaGsonBuilder.create().fromJson(response, WxOpenMaDomainResult.class);
   }
 
+  @Override
+  public WxOpenMaDomainResult modifyDomainDirectly(String action, List requestDomains, List wsRequestDomains,
+                                                   List uploadDomains, List downloadDomains,
+                                                   List udpDomains, List tcpDomains) throws WxErrorException {
+    JsonObject requestJson = new JsonObject();
+    requestJson.addProperty(ACTION, action);
+    if (!ACTION_GET.equals(action)) {
+      requestJson.add("requestdomain", toJsonArray(requestDomains));
+      requestJson.add("wsrequestdomain", toJsonArray(wsRequestDomains));
+      requestJson.add("uploaddomain", toJsonArray(uploadDomains));
+      requestJson.add("downloaddomain", toJsonArray(downloadDomains));
+      requestJson.add("udpdomain", toJsonArray(udpDomains));
+      requestJson.add("tcpdomain", toJsonArray(tcpDomains));
+    }
+
+    String response = post(API_MODIFY_DOMAIN_DIRECTLY, GSON.toJson(requestJson));
+    return WxMaGsonBuilder.create().fromJson(response, WxOpenMaDomainResult.class);
+  }
+
   @Override
   public String getWebViewDomain() throws WxErrorException {
     return setWebViewDomain(ACTION_GET, null);
@@ -140,6 +159,22 @@ public class WxOpenMaServiceImpl extends WxMaServiceImpl implements WxOpenMaServ
     return WxMaGsonBuilder.create().fromJson(response, WxOpenMaWebDomainResult.class);
   }
 
+  @Override
+  public String setWebViewDomainDirectly(String action, List domainList) throws WxErrorException {
+    JsonObject requestJson = new JsonObject();
+    requestJson.addProperty(ACTION, action);
+    if (!ACTION_GET.equals(action)) {
+      requestJson.add("webviewdomain", toJsonArray(domainList));
+    }
+    return post(API_SET_WEBVIEW_DOMAIN_DIRECTLY, GSON.toJson(requestJson));
+  }
+
+  @Override
+  public WxOpenMaWebDomainResult setWebViewDomainDirectlyInfo(String action, List domainList) throws WxErrorException {
+    String response = this.setWebViewDomainDirectly(action, domainList);
+    return WxMaGsonBuilder.create().fromJson(response, WxOpenMaWebDomainResult.class);
+  }
+
   @Override
   public WxOpenMaDomainConfirmFileResult getWebviewDomainConfirmFile() throws WxErrorException {
     String responseContent = post(API_GET_WEBVIEW_DOMAIN_CONFIRM_FILE, "{}");