From 286596f8a2e6d1b58a1741dd86a96cfe680464cb Mon Sep 17 00:00:00 2001 From: Cocowwy <63331147+Cocowwy@users.noreply.github.com> Date: Tue, 13 Sep 2022 21:41:49 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=20#2811=20=E3=80=90=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E3=80=91=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=AF=E4=B8=80=E6=AC=A1=E6=80=A7=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpUserService.java | 13 ++++++++++++ .../mp/api/impl/WxMpUserServiceImpl.java | 20 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java index 00eea89e7..d347864cb 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java @@ -93,6 +93,19 @@ public interface WxMpUserService { */ WxMpUserList userList(String nextOpenid) throws WxErrorException; + /** + *
+ * 获取用户列表(全部) + * 公众号可通过本接口来获取帐号的关注者列表, + * 关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。 + * @see #userList(java.lang.String) 的增强,内部进行了多次数据拉取的汇总 + * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140840&token=&lang=zh_CN + * http请求方式: GET(请使用https协议) + * 接口地址:https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID + *+ */ + WxMpUserList userList() throws WxErrorException; + /** *
* 微信公众号主体变更迁移用户 openid
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java
index 03c83e3b4..8308f6df8 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java
@@ -10,6 +10,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpChangeOpenid;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import me.chanjar.weixin.mp.bean.result.WxMpUserList;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
+import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.List;
@@ -52,6 +53,25 @@ public class WxMpUserServiceImpl implements WxMpUserService {
return WxMpUserList.fromJson(responseContent);
}
+ @Override
+ public WxMpUserList userList() throws WxErrorException {
+ String responseContent = this.wxMpService.get(USER_GET_URL, null);
+ WxMpUserList mergeList = new WxMpUserList();
+
+ WxMpUserList wxMpUserList = WxMpUserList.fromJson(responseContent);
+ mergeList.getOpenids().addAll(wxMpUserList.getOpenids());
+ mergeList.setCount(wxMpUserList.getCount());
+ mergeList.setTotal(wxMpUserList.getTotal());
+
+ while (StringUtils.isNotEmpty(wxMpUserList.getNextOpenid())) {
+ WxMpUserList nextReqUserList = userList(wxMpUserList.getNextOpenid());
+ mergeList.getOpenids().addAll(nextReqUserList.getOpenids());
+ mergeList.setCount(mergeList.getCount() + nextReqUserList.getCount());
+ wxMpUserList = nextReqUserList;
+ }
+ return mergeList;
+ }
+
@Override
public List changeOpenid(String fromAppid, List openidList) throws WxErrorException {
Map map = new HashMap<>(2);