From 14fc8540156f1a9b9c45277d12606bef223a9dd8 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 17 Nov 2025 03:16:04 +0000
Subject: [PATCH 1/3] Initial plan
From 63ddc8e3e1299d95f7b0a652d12b513731f0a5e6 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 17 Nov 2025 03:23:52 +0000
Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0wx.getGroupEnterInfo?=
=?UTF-8?q?=E6=94=AF=E6=8C=81=EF=BC=9A=E6=96=B0=E5=A2=9EWxMaGroupEnterInfo?=
=?UTF-8?q?=E7=B1=BB=E5=92=8C=E7=9B=B8=E5=85=B3=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
---
.../wx/miniapp/api/WxMaShareService.java | 13 +++++
.../api/impl/WxMaShareServiceImpl.java | 6 +++
.../wx/miniapp/bean/WxMaGroupEnterInfo.java | 47 +++++++++++++++++++
.../api/impl/WxMaShareServiceImplTest.java | 13 +++++
4 files changed, 79 insertions(+)
create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShareService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShareService.java
index 8c6030e53c..d32aee2c16 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShareService.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShareService.java
@@ -1,5 +1,6 @@
package cn.binarywang.wx.miniapp.api;
+import cn.binarywang.wx.miniapp.bean.WxMaGroupEnterInfo;
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
/**
@@ -18,4 +19,16 @@ public interface WxMaShareService {
*/
WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr);
+ /**
+ * 解密群入口敏感数据.
+ * 对应 wx.getGroupEnterInfo 接口返回的 encryptedData 解密
+ *
+ * @param sessionKey 会话密钥
+ * @param encryptedData 消息密文
+ * @param ivStr 加密算法的初始向量
+ * @return 群入口信息
+ * @see wx.getGroupEnterInfo 官方文档
+ */
+ WxMaGroupEnterInfo getGroupEnterInfo(String sessionKey, String encryptedData, String ivStr);
+
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImpl.java
index fd1981aa03..a3a8e6176f 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImpl.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImpl.java
@@ -2,6 +2,7 @@
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.WxMaShareService;
+import cn.binarywang.wx.miniapp.bean.WxMaGroupEnterInfo;
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
import cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
import lombok.RequiredArgsConstructor;
@@ -18,4 +19,9 @@ public WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, Strin
return WxMaShareInfo.fromJson(WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr));
}
+
+ @Override
+ public WxMaGroupEnterInfo getGroupEnterInfo(String sessionKey, String encryptedData, String ivStr) {
+ return WxMaGroupEnterInfo.fromJson(WxMaCryptUtils.decrypt(sessionKey, encryptedData, ivStr));
+ }
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
new file mode 100644
index 0000000000..09bf1bcd09
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
@@ -0,0 +1,47 @@
+package cn.binarywang.wx.miniapp.bean;
+
+import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 微信小程序群入口信息.
+ * 对应 wx.getGroupEnterInfo 接口返回的解密数据
+ *
+ * @author Binary Wang
+ * @see wx.getGroupEnterInfo 官方文档
+ */
+@Data
+public class WxMaGroupEnterInfo implements Serializable {
+ private static final long serialVersionUID = -8053613683499632227L;
+
+ /**
+ * 多聊群下返回的群唯一标识.
+ */
+ @SerializedName("opengid")
+ private String openGId;
+
+ /**
+ * 单聊群下返回的群唯一标识.
+ */
+ @SerializedName("open_single_roomid")
+ private String openSingleRoomid;
+
+ /**
+ * 用户在当前群的唯一标识.
+ */
+ @SerializedName("group_openid")
+ private String groupOpenid;
+
+ /**
+ * 聊天室类型.
+ */
+ @SerializedName("chat_type")
+ private Integer chatType;
+
+ public static WxMaGroupEnterInfo fromJson(String json) {
+ return WxMaGsonBuilder.create().fromJson(json, WxMaGroupEnterInfo.class);
+ }
+}
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImplTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImplTest.java
index dcf3726e33..f6d041ff35 100644
--- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImplTest.java
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/api/impl/WxMaShareServiceImplTest.java
@@ -1,6 +1,7 @@
package cn.binarywang.wx.miniapp.api.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaGroupEnterInfo;
import cn.binarywang.wx.miniapp.bean.WxMaShareInfo;
import cn.binarywang.wx.miniapp.test.ApiTestModule;
import com.google.inject.Inject;
@@ -37,4 +38,16 @@ public void testGetShareInfo() {
assertNotNull(shareInfo);
System.out.println(shareInfo.toString());
}
+
+ /**
+ * TODO 测试数据有问题,需要替换为正确的数据
+ */
+ @Test
+ public void testGetGroupEnterInfo() {
+ WxMaGroupEnterInfo groupEnterInfo = this.wxService.getShareService().getGroupEnterInfo("tiihtNczf5v6AKRyjwEUhQ==",
+ "CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZMQmRzooG2xrDcvSnxIMXFufNstNGTyaGS9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+3hVbJSRgv+4lGOETKUQz6OYStslQ142dNCuabNPGBzlooOmB231qMM85d2/fV6ChevvXvQP8Hkue1poOFtnEtpyxVLW1zAo6/1Xx1COxFvrc2d7UL/lmHInNlxuacJXwu0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn/Hz7saL8xz+W//FRAUid1OksQaQx4CMs8LOddcQhULW4ucetDf96JcR3g0gfRK4PC7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns/8wR2SiRS7MNACwTyrGvt9ts8p12PKFdlqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYVoKlaRv85IfVunYzO0IKXsyl7JCUjCpoG20f0a04COwfneQAGGwd5oa+T8yO5hzuyDb/XcxxmK01EpqOyuxINew==",
+ "r7BXXKkLb8qrSNn05n0qiA==");
+ assertNotNull(groupEnterInfo);
+ System.out.println(groupEnterInfo.toString());
+ }
}
From 9a2d1a9c08e81ad0e80518fa1b5ceaefda2e1f83 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 17 Nov 2025 03:32:01 +0000
Subject: [PATCH 3/3] =?UTF-8?q?=E7=A7=BB=E9=99=A4WxMaGroupEnterInfo?=
=?UTF-8?q?=E7=B1=BB=E4=B8=AD=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84@author?=
=?UTF-8?q?=E6=A0=87=E6=B3=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: binarywang <1343140+binarywang@users.noreply.github.com>
---
.../java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
index 09bf1bcd09..e65ec602da 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaGroupEnterInfo.java
@@ -10,7 +10,6 @@
* 微信小程序群入口信息.
* 对应 wx.getGroupEnterInfo 接口返回的解密数据
*
- * @author Binary Wang
* @see wx.getGroupEnterInfo 官方文档
*/
@Data