微信开发八 用户管理

本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。

本篇根据开发者文档-用户管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/4/e3427b8e5bd66cfad337af43c8875f14.html


开发者可以使用接口,对公众平台的分组进行查询、创建、修改、删除等操作,也可以使用接口在需要时移动用户到某个分组。

public class UserGroup {

    private String openid;              //用户的OpenID 
    private String to_groupid;          //分组id
    private List<String> openid_list;   //分组名字(30个字符以内) 
    private Group group;                //分组 
    private String remark;              //新的备注名,长度必须小于30字符 
    private List<User> user_list;       //分组名字(30个字符以内) 

    public String getOpenid() {
        return openid;
    }
    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getTo_groupid() {
        return to_groupid;
    }
    public void setTo_groupid(String to_groupid) {
        this.to_groupid = to_groupid;
    }

    public List<String> getOpenid_list() {
        if(openid_list == null) openid_list = new ArrayList<String>();
        return openid_list;
    }
    public void setOpenid_list(List<String> openid_list) {
        this.openid_list = openid_list;
    }

    public Group getGroup() {
        return group;
    }
    public void setGroup(Group group) {
        this.group = group;
    }

    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<User> getUser_list() {
        if(user_list == null) user_list = new ArrayList<User>();
        return user_list;
    }
    public void setUser_list(List<User> user_list) {
        this.user_list = user_list;
    }

    public class Group {
        private String id;              //分组id
        private String name;            //分组名字(30个字符以内) 

        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    public class User {
        private String openid ;         //用户的标识,对当前公众号唯一 
        private String lang ;           //国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN 

        public String getOpenid() {
            return openid;
        }
        public void setOpenid(String openid) {
            this.openid = openid;
        }

        public String getLang() {
            return lang;
        }
        public void setLang(String lang) {
            this.lang = lang;
        }
    }
}
public interface UserGroupService {

    //创建分组
    public String createUserGroup(UserGroup userGroup);

    //查询所有分组
    public String getAllGroup();

    //查询用户所在分组
    public String getGroupIdByOpenId(UserGroup userGroup);

    //修改分组名
    public String updateGroupName(UserGroup userGroup);

    //移动用户分组
    public String mobieUserInGroup(UserGroup userGroup);

    //批量移动用户分组
    public String mobieUsersInGroup(UserGroup userGroup);

    //删除分组
    public String deleteGroup(UserGroup userGroup);

    //设置备注名
    public String setUserRemark(UserGroup userGroup);

    //获取用户基本信息(包括UnionID机制)
    public String getUserInfo(String unionID);

    //批量获取用户基本信息
    public String getMostUserInfo(UserGroup userGroup);

    //获取用户列表
    public String getUserList(String next_openid );
}
@Service("userGroupService")
public class UserGroupServiceImpl implements UserGroupService {

    private static final Logger logger = Logger.getLogger(UserGroupServiceImpl.class);

    @Override
    public String createUserGroup(UserGroup userGroup) {
        logger.info("==========createUserGroup===========");
        String url = WeChatInterface.CREATE_USER_GROUP.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String getAllGroup() {
        logger.info("==========getAllGroup===========");
        String url = WeChatInterface.GET_ALL_GROUP.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return HttpUtil.getStringByGet(url);
    }

    @Override
    public String getGroupIdByOpenId(UserGroup userGroup) {
        logger.info("==========getGroupIdByOpenId===========");
        String url = WeChatInterface.GET_GROUPID_BY_OPENID.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String updateGroupName(UserGroup userGroup) {
        logger.info("==========updateGroupName===========");
        String url = WeChatInterface.UPDATE_GROUP_NAME.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String mobieUserInGroup(UserGroup userGroup) {
        logger.info("==========mobieUserInGroup===========");
        String url = WeChatInterface.MOBIE_USER_IN_GROUP.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String mobieUsersInGroup(UserGroup userGroup) {
        logger.info("==========mobieUsersInGroup===========");
        String url = WeChatInterface.MOBIE_USERS_IN_GROUP.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String deleteGroup(UserGroup userGroup) {
        logger.info("==========deleteGroup===========");
        String url = WeChatInterface.DELETE_GROUP.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String setUserRemark(UserGroup userGroup) {
        logger.info("==========setUserRemark===========");
        String url = WeChatInterface.SET_USER_REMARK.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String getUserInfo(String unionID) {
        logger.info("==========getUserInfo===========");
        String url = WeChatInterface.GET_USER_INFO.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN).replace("OPENID", unionID);
        return HttpUtil.getStringByGet(url);
    }

    @Override
    public String getMostUserInfo(UserGroup userGroup) {
        logger.info("==========getMostUserInfo===========");
        String url = WeChatInterface.GET_MOST_USER_INFO.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN);
        return JsonUtil.getResp(url, "POST", new Gson().toJson(userGroup));
    }

    @Override
    public String getUserList(String next_openid) {
        logger.info("==========getUserList===========");
        String url = WeChatInterface.GET_USER_LIST.replace("ACCESS_TOKEN", WeChatCertificate.WECHAT_ACCESSTOKEN).replace("NEXT_OPENID", next_openid);
        return HttpUtil.getStringByGet(url);
    }
}
@RunWith(SpringJUnit4ClassRunner.class)        // 表示继承了 SpringJUnit4ClassRunner 类
@ContextConfiguration("classpath:spring-mybatis.xml")
public class TestWXUserGroup {

    @Resource   
    private UserGroupService userGroupService;

//  @Test
    public void createUserGroup() {
        UserGroup userGroup = new UserGroup();
        UserGroup.Group group = userGroup.new Group();
        group.setName("测试一");
        userGroup.setGroup(group);
      System.out.println(">>>"+userGroupService.createUserGroup(userGroup));
    }

//  @Test
    public void getAllGroup() {
        System.out.println(">>>"+userGroupService.getAllGroup());
    }

//  @Test
    public void getGroupIdByOpenId() {
        UserGroup userGroup = new UserGroup();
        userGroup.setOpenid(WeChatCertificate.OPENID1);
      System.out.println(">>>"+userGroupService.getGroupIdByOpenId(userGroup));
    }

//  @Test
    public void updateGroupName() {
        UserGroup userGroup = new UserGroup();
        UserGroup.Group group = userGroup.new Group();
        group.setId("101");
        group.setName("测试一");
        userGroup.setGroup(group);
      System.out.println(">>>"+userGroupService.updateGroupName(userGroup));
    }

//  @Test
    public void mobieUserInGroup() {
        UserGroup userGroup = new UserGroup();
        userGroup.setOpenid(WeChatCertificate.OPENID1);
        userGroup.setTo_groupid("101");
      System.out.println(">>>"+userGroupService.mobieUserInGroup(userGroup));
    }

//  @Test
    public void mobieUsersInGroup() {
        UserGroup userGroup = new UserGroup();
        userGroup.getOpenid_list().add(WeChatCertificate.OPENID1);
        userGroup.getOpenid_list().add(WeChatCertificate.OPENID2);
        userGroup.setTo_groupid("102");
      System.out.println(">>>"+userGroupService.mobieUsersInGroup(userGroup));
    }

//  @Test
    public void deleteGroup() {
        UserGroup userGroup = new UserGroup();
        UserGroup.Group group = userGroup.new Group();
        group.setId("100");
        userGroup.setGroup(group);
        System.out.println(">>>"+userGroupService.deleteGroup(userGroup));
    }

//  @Test
    public void setUserRemark() {
        UserGroup userGroup = new UserGroup();
        userGroup.setOpenid(WeChatCertificate.OPENID1);
        userGroup.setRemark("伪君子");
      System.out.println(">>>"+userGroupService.setUserRemark(userGroup));
    }

//  @Test
    public void getUserInfo() {
      System.out.println(">>>"+userGroupService.getUserInfo(WeChatCertificate.OPENID1));
    }

//  @Test
    public void getMostUserInfo() {
        UserGroup userGroup = new UserGroup();
        UserGroup.User user1 = userGroup.new User();
        user1.setOpenid(WeChatCertificate.OPENID1);
        user1.setLang("zh-CN");
        userGroup.getUser_list().add(user1);
        UserGroup.User user2 = userGroup.new User();
        user2.setOpenid(WeChatCertificate.OPENID2);
        user2.setLang("zh-CN");
        userGroup.getUser_list().add(user2);
      System.out.println(">>>"+userGroupService.getMostUserInfo(userGroup));
    }

//  @Test
    public void getUserList() {
        System.out.println(">>>"+userGroupService.getUserList(""));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值