From ab092fe43f5a9806442b92b1efc8d0aa1197ff85 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Oct 2025 02:12:49 +0000 Subject: [PATCH 1/3] Initial plan From 57d61f17ba1b8f192b8f6d4ff5492a79a6dcd542 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Oct 2025 02:22:43 +0000 Subject: [PATCH 2/3] Add fast domain configuration APIs for mini-programs Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com> --- .../weixin/open/api/WxOpenMaService.java | 50 +++++++++++++++++++ .../open/api/impl/WxOpenMaServiceImpl.java | 35 +++++++++++++ 2 files changed, 85 insertions(+) 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 fef85d7f2e..ab229ba537 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 @@ WxOpenMaDomainResult modifyDomain(String action, List requestDomains, Li
                                     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 @@ WxOpenMaDomainResult modifyDomain(String action, List requestDomains, Li
    */
   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/WxOpenMaServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenMaServiceImpl.java
index 85ce41fd0c..da9f910eb2 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 WxOpenMaDomainResult modifyDomain(String action, List requestDoma
     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 WxOpenMaWebDomainResult setWebViewDomainInfo(String action, List
     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, "{}");

From df872dba41a4c609e4d9db78c78f9bf18d6a4c4e Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 23 Oct 2025 03:11:19 +0000
Subject: [PATCH 3/3] Add third-party platform domain configuration APIs

Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
---
 .../open/api/WxOpenComponentService.java      | 64 +++++++++++++++++++
 .../api/impl/WxOpenComponentServiceImpl.java  | 51 +++++++++++++++
 2 files changed, 115 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 d8e1795e05..eb334f7b1c 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/impl/WxOpenComponentServiceImpl.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenComponentServiceImpl.java
index 80da912bef..18940c4d20 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 WxOpenResult applySetOrderPathInfo(WxOpenMaApplyOrderPathInfo info) throw
     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;
+  }
 }