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;
+ }
}