首页 > 其他分享 >微信公众号关注回调

微信公众号关注回调

时间:2025-01-16 16:15:00浏览次数:1  
标签:code String 微信 WxEeventType private 公众 回调 event

环境:

1、springboot后端服务

 

我们可以在用户关注运营的微信公众号后获取微信的用户信息,并将其存入自己的库中,以便后期使用,申请公众号的步骤这里就不涉猎了,具体操作如下:

1、在公众号页面配置服务器回调地址,只能是域名且是80或者443端口

 2、在后端服务中提供这个接口,修改完成后点击下面的“提交”按钮,成功回调后后续用户关注取消关注时都会回调这个接口,本文给一个示例接口:

@RequestMapping(value = "/xxx/onWxMsg")
    public String checkWxToken(@RequestParam(value = "signature", required = false) String signature,
                               @RequestParam(value = "timestamp", required = false) String timestamp,
                               @RequestParam(value = "echostr", required = false) String echostr,
                               @RequestBody(required = false) WxServiceMsgDto wxServiceMsgDto) {
        if (StringUtils.isNotEmpty(echostr)) {
           // 用于微信校验接口存在性,必须返回echostr
            return echostr;
        }
        // 只处理订阅与取消订阅消息
        if (null != wxServiceMsgDto && StringUtils.isNotEmpty(wxServiceMsgDto.getMsgType()) &&
                StringUtils.isNotEmpty(wxServiceMsgDto.getEvent())) {
            String msgType = wxServiceMsgDto.getMsgType();
            String event = wxServiceMsgDto.getEvent();
            boolean isSubcribe = WxMessageType.EVENT.getCode().equals(msgType) &&
                    (WxEeventType.SUBSCRIBE.getCode().equals(event)
                            || WxEeventType.UNSUBSCRIBE.getCode().equals(event));
            if (isSubcribe) {
                WxEeventType wxEeventType = WxEeventType.SUBSCRIBE.getCode().equals(event) ? WxEeventType.SUBSCRIBE : WxEeventType.UNSUBSCRIBE;
                wxService.onFollowCallback(wxServiceMsgDto, wxEeventType);
            }
        }
   。。。。。。
}

  核心类定义如下:

@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.FIELD)
@Data
public class WxServiceMsgDto {
 
     @XmlElement(name = "Event")
     private String event;
 
     @XmlElement(name = "Content")
     private String content;
 
     @XmlElement(name = "MsgType")
     private String msgType;
 
     @XmlElement(name = "ToUserName")
     private String toUserName;
 
     
     /**
      * fromUserName为关注人的openId
     **/
 
     @XmlElement(name = "FromUserName")
     private String fromUserName;
 
     @XmlElement(name="CreateTime")
     private String createTime;
}

  

@Getter
public enum WxEeventType {
    /**
     * 关注公众号
     */
    SUBSCRIBE("subscribe"),
    /**
     * 取消关注公众号
     */
    UNSUBSCRIBE("unsubscribe");
 
    private String code;
 
    WxEeventType(String code) {
        this.code = code;
    }
}

  

@Getter
public enum WxMessageType {
 
    /**
     * 事件类型,比如订阅与取消订阅
     */
    EVENT("event"),
    /**
     * 向公众号发送的文字消息
     */
    TEXT("text");
 
    private String code;
 
    WxMessageType(String code) {
        this.code = code;
    }
}

  

根据WxServiceMsgDto对象中msgType属性为event且event属性为subscribe或者unsubscribe的消息进行处理,其他类型回调都抛弃。

3、根据openId调用微信的/cgi-bin/user/info获取用户的基础信息,参考微信官网微信开放文档
————————————————



原文链接:https://blog.csdn.net/john1337/article/details/121860490

 

标签:code,String,微信,WxEeventType,private,公众,回调,event
From: https://www.cnblogs.com/xianz666/p/18675154

相关文章

  • 微信小程序获取openid
    2025年1月15日:注意:其中appid,secret,还有服务器网址都按自己实际的填写1、先在云服务器上安装nodejs,然后写个get接口:constexpress=require('express');constapp=express();app.get('/getOpenid',(req,res)=>{res.send("success");})app.listen(3000,()=>......
  • [源码免费下载]毕业设计源码信息分享下载(Android+微信小程序+管理系统)
     博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;......
  • H5端微信登录完整流程
    功能概述H5端微信登录是基于微信开放平台和OAuth2.0协议,实现用户通过移动端微信授权登录的功能。通过调用微信提供的接口,用户无需输入账号密码即可完成快捷登录。一、流程概览完整流程图以下为H5端微信登录的整体流程:二、详细流程步骤步骤1:注册微信开放平台并获取基......
  • PC端微信登录完整流程
    功能概述PC端微信登录是一种快捷、安全的登录方式,通过微信开放平台提供的API接口,用户可以扫描二维码快速登录第三方应用。以下记录了从功能申请到实际开发的完整过程。一、流程概览完整流程图以下为PC端微信登录的整体流程示意: 二、详细流程步骤步骤1:注册微信开放......
  • 盘点 GitHub 上可用的微信抢红包插件:原理、项目与安全建议
    快过年了,给大家盘点写好玩的,很多小伙伴应该需要的。我们首选github,GitHub作为全球最大的开源社区,自然也汇聚了不少微信抢红包相关的项目。本篇博客将盘点目前在GitHub上能够找到的部分微信抢红包插件或脚本,介绍其主要原理、使用门槛与风险,为有兴趣了解该领域的读者提供参考......
  • 社交软件红包技术解密(五):微信红包系统是如何实现高可用性的
    本文来自微信团队工程师方乐明的技术分享,由InfoQ编辑发布,下文有修订和改动。一、引言微信红包业务量级的高速发展,对后台系统架构的可用性要求越来越高。在保障微信红包业务体验的前提下,红包后台系统进行了一系列高可用方面的优化设计。本次分享介绍了微信红包后台系统的高可......
  • 基于微信小程序的校园商铺系统设计与实现(LW+源码+讲解)
    专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。主要内容:免费功能设计、开题报告、任务书、中......
  • 获取微信红包封面
    获取微信红包封面调试工具接口应在服务器端调用,详细说明参见服务端API。本接口支持云调用。需开发者工具版本>=1.02.1904090(最新稳定版下载),wx-server-sdk>=0.4.0接口说明接口英文名getRedPacketCoverUrl功能描述本接口用于获得指定用户可以领取的红包封面链接。......
  • 微信原来可以修改共享位置!!!
    在我们日常生活当中避免不了类似查岗的去共享实时位置那有什么办法去更好的保护我们的个人隐私呢可不可以去修改我们的共享位置呢?答案是可以的不管使用的是安卓机还是苹果机都可以去修改我们的共享位置在这个定位里面我们就可以随心改变我们共享位置啦我们再试下其......
  • 微信小程序实现个人中心页面
    文章目录1.官方文档教程2.编写静态页面3.关于作者其它项目视频教程介绍1.官方文档教程https://developers.weixin.qq.com/miniprogram/dev/framework/2.编写静态页面mine.wxml布局文件<!--index.wxml--><navigation-bartitle="个人中心"back="{{false}}"......