From 9a616de2a5cb58bca1d0911a04b4045202cabcee Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sat, 22 Aug 2026 20:38:40 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20#4110=20=E3=80=90=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E3=80=91=E4=BF=AE=E6=AD=A3=E6=9C=8D=E5=8A=A1=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=87=A0=E4=B8=AA=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- weixin-java-miniapp/pom.xml | 1 + .../wx/miniapp/api/WxMaSubscribeService.java | 6 +- .../miniapp/constant/WxMaApiUrlConstants.java | 6 +- .../impl/WxMaSubscribeServiceImplUrlTest.java | 55 +++++++++++++++++++ .../src/test/resources/testng.xml | 9 +++ 5 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImplUrlTest.java create mode 100644 weixin-java-miniapp/src/test/resources/testng.xml diff --git a/weixin-java-miniapp/pom.xml b/weixin-java-miniapp/pom.xml index d2722652f..66e859dd0 100644 --- a/weixin-java-miniapp/pom.xml +++ b/weixin-java-miniapp/pom.xml @@ -115,6 +115,7 @@ org.apache.maven.plugins maven-surefire-plugin + false src/test/resources/testng.xml diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java index 1dbb9f64c..d1ecf1c83 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaSubscribeService.java @@ -122,7 +122,7 @@ public interface WxMaSubscribeService { * 激活与更新服务卡片 * * 详情请见: 激活与更新服务卡片 - * 接口url格式: POST https://api.weixin.qq.com/wxa/setusernotify?access_token=ACCESS_TOKEN + * 接口url格式: POST https://api.weixin.qq.com/wxa/set_user_notify?access_token=ACCESS_TOKEN * * * @param request 请求参数 @@ -135,7 +135,7 @@ public interface WxMaSubscribeService { * 更新服务卡片扩展信息 * * 详情请见: 更新服务卡片扩展信息 - * 接口url格式: POST https://api.weixin.qq.com/wxa/setusernotifyext?access_token=ACCESS_TOKEN + * 接口url格式: POST https://api.weixin.qq.com/wxa/set_user_notifyext?access_token=ACCESS_TOKEN * * * @param request 请求参数 @@ -148,7 +148,7 @@ public interface WxMaSubscribeService { * 查询服务卡片状态 * * 详情请见: 查询服务卡片状态 - * 接口url格式: POST https://api.weixin.qq.com/wxa/getusernotify?access_token=ACCESS_TOKEN + * 接口url格式: POST https://api.weixin.qq.com/wxa/get_user_notify?access_token=ACCESS_TOKEN * * * @param request 请求参数 diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java index 1054f7df2..e16cd982a 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java @@ -370,13 +370,13 @@ public class WxMaApiUrlConstants { String SUBSCRIBE_MSG_SEND_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send"; /** 激活与更新服务卡片 */ - String SERVICE_NOTIFY_SET_URL = "https://api.weixin.qq.com/wxa/setusernotify"; + String SERVICE_NOTIFY_SET_URL = "https://api.weixin.qq.com/wxa/set_user_notify"; /** 更新服务卡片扩展信息 */ - String SERVICE_NOTIFY_SET_EXT_URL = "https://api.weixin.qq.com/wxa/setusernotifyext"; + String SERVICE_NOTIFY_SET_EXT_URL = "https://api.weixin.qq.com/wxa/set_user_notifyext"; /** 查询服务卡片状态 */ - String SERVICE_NOTIFY_GET_URL = "https://api.weixin.qq.com/wxa/getusernotify"; + String SERVICE_NOTIFY_GET_URL = "https://api.weixin.qq.com/wxa/get_user_notify"; } public interface User { diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImplUrlTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImplUrlTest.java new file mode 100644 index 000000000..1b4c09d5f --- /dev/null +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaSubscribeServiceImplUrlTest.java @@ -0,0 +1,55 @@ +package cn.binarywang.wx.miniapp.api.impl; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.WxMaSubscribeService; +import cn.binarywang.wx.miniapp.bean.WxMaGetUserNotifyRequest; +import cn.binarywang.wx.miniapp.bean.WxMaServiceNotifyExtRequest; +import cn.binarywang.wx.miniapp.bean.WxMaServiceNotifyRequest; +import me.chanjar.weixin.common.error.WxErrorException; +import org.mockito.Mockito; +import org.testng.annotations.Test; + +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class WxMaSubscribeServiceImplUrlTest { + + @Test + public void setUserNotifyUsesOfficialEndpoint() throws WxErrorException { + WxMaService service = successService(); + + subscribeService(service).setUserNotify(WxMaServiceNotifyRequest.builder().build()); + + verify(service).post(eq("https://api.weixin.qq.com/wxa/set_user_notify"), anyString()); + } + + @Test + public void setUserNotifyExtUsesOfficialEndpoint() throws WxErrorException { + WxMaService service = successService(); + + subscribeService(service).setUserNotifyExt(WxMaServiceNotifyExtRequest.builder().build()); + + verify(service).post(eq("https://api.weixin.qq.com/wxa/set_user_notifyext"), anyString()); + } + + @Test + public void getUserNotifyUsesOfficialEndpoint() throws WxErrorException { + WxMaService service = successService(); + + subscribeService(service).getUserNotify(WxMaGetUserNotifyRequest.builder().build()); + + verify(service).post(eq("https://api.weixin.qq.com/wxa/get_user_notify"), anyString()); + } + + private WxMaSubscribeService subscribeService(WxMaService service) { + return new WxMaSubscribeServiceImpl(service); + } + + private WxMaService successService() throws WxErrorException { + WxMaService service = Mockito.mock(WxMaService.class); + when(service.post(anyString(), anyString())).thenReturn("{\"errcode\":0,\"errmsg\":\"ok\"}"); + return service; + } +} diff --git a/weixin-java-miniapp/src/test/resources/testng.xml b/weixin-java-miniapp/src/test/resources/testng.xml new file mode 100644 index 000000000..b34a4415d --- /dev/null +++ b/weixin-java-miniapp/src/test/resources/testng.xml @@ -0,0 +1,9 @@ + + + + + + + + +