前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot用户关注公众号获取用户openid案例

Spring Boot用户关注公众号获取用户openid案例

作者头像
小诸葛
发布2020-04-14 15:44:38
3.4K1
发布2020-04-14 15:44:38
举报
文章被收录于专栏:方法论方法论

前言

在进行微信公众号开发中,有时我们需要获取粉丝的openid,以此完成一些业务的处理,例如:向指定用户推送模板消息,那么怎么获取用户的openid呢?实际上,当用户关注公众号后即可获取openid。

一.前置条件

首先,需要在微信公众平台进行服务器配置,配置完成后,用户与公众号的所有交互都会发送到用户填写的URL上。关于服务器配置可参考我的另一篇文章:Spring Boot微信公众号配置案例

二.编写业务处理接口

前面已经提到,用户与公众号的所有交互事件都会发送用户配置的URL上,而这个URL一旦配置后就不能再修改(也可以修改,但是要重新验证token),所以,我们要用同一个URL处理多种业务(包括验证token和用户与公众号交互处理),也就是用同一个接口处理多种业务。

例如我配置的URL后缀是“/checkToken”,那么处理用户关注取关的接口名称也必须是checkToken,返回值类型为String类型,业务处理代码如下表2.1所示。

表2.1 用户与公众号交互事件处理代码

代码语言:javascript
复制
    @ApiOperation("用户与公众号交互事件处理")
    @RequestMapping("/checkToken")
    public String checkToken(HttpServletRequest request,HttpServletResponse response)
        log.info("用户与公众号交互事件处理");
        try{
            Map<String ,String > requestMap = WxMessageUtil.parseXml(request);
            String messageType = requestMap.get("MsgType");
            String eventType = requestMap.get("Event");
            String openid = requestMap.get("FromUserName");
            if(messageType.equals("event")){
                //判断消息类型是否是事件消息类型
                log.info("公众号====>事件消息");
                log.info("openid:" + openid);
                log.info("Event:" + eventType);
                if(eventType.equals("subscribe")){
                    log.info("公众号====>新用户关注");
                }else if(eventType.equals("unsubscribe")){
                    log.info("公众号====>用户取消关注");
                }else{
                    log.info("公众号===>其他");
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return "";
    }

三.测试

关注公众号后,服务器将打印业务处理日志,如图3.1所示。

图3.1 业务处理日志截图

四.总结

用户关注公众号获取用户openid的业务还是比较简单的。实际上,对于公众号而言,这个openid参数名是FromUserName的,但是,习惯上我们还是称之为openid。

五.项目源码地址

项目源代码本人已上传至本人github上,感兴趣的小伙伴可以去下载。

https://github.com/LongYil/wxutils/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小诸葛的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档