微信开发八 用户管理

来源:互联网 发布:免费的音乐软件 编辑:程序博客网 时间:2024/05/18 19:47

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

本篇根据开发者文档-用户管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为: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(""));    }}
0 0