1.首先要在微信公众号后台填写服务器信息。 具体可看微信的文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

2.在服务器上配置具体代码反馈微信的验证,如第三步的

this.ctx.body = params.echostr;

3.和关注、取消关注相关的业务逻辑代码。这里我使用了xml2js将xml转成对象和js-sha1来生成sha1加密字符串

    const XMLJS = require('xml2js');const sha1 = require('js-sha1');// 解析URL里的参数const params = Url.parse(this.ctx.req.url, true).query;// 微信传来的加密字符串const signature = params.signature;// 根据传来的其他值计算加密字符串const timestamp = params.timestamp;const nonce = params.nonce;const token = 'weixin'; // 这是在公众平台上自己设置的const array = [ token, timestamp, nonce ];array.sort();const scyptoString = sha1(array.join(''));// 比对两个加密字符串是否相等,相等则为微信官方传来的信息if (scyptoString === signature) {// 获取请求内的xml参数this.ctx.req.on('data', data => {// 将xml解析XMLJS.parseString(data.toString(), (err, result) => {if (result) {const event = result.xml.Event[0];if (event === 'subscribe') {// 订阅,获取用户基本信息存入订阅表,建议使用非同步写法以加快responsethis.ctx.service.wechat.saveSubscibeUser(result.xml.FromUserName[0]);} else if (event === 'unsubscribe') {// 取消订阅this.ctx.service.wechat.deleteSubscibeUser(result.xml.FromUserName[0]);}}});});}// 假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试if (params.echostr) {// 用于通过微信验证this.ctx.body = params.echostr;} else {this.ctx.body = '';}

微信的其他事件推送:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140454

nodejs 监控微信公众号关注事件推送相关推荐

  1. 接收微信公众号的事件推送并且回复消息

    微信公众号回调我们配置的服务器url 配置公众号回调地址 新建配置URL的接口 XML转java Bean工具类 演示 配置公众号回调地址 URL配置微信会验证此地址,直接返回微信的echostr参数 ...

  2. 微信公众号接收事件推送

    功能 当开发者在微信开放平台启用了服务器配置后,在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信 ...

  3. 如何在微信公众号的文章推送中展示bilibili的视频

    0x00  需求背景: 我们学院举办了一个短视频设计大赛,需要在官方公众号里进行线上投票,选出大家最喜欢的视频. 然而微信公众号的文章推送中,限制了每篇文章只能上传三部视频,而我们需要把三十部作品都放 ...

  4. 通过python实现企业微信公众号链接+图文推送

    背景:通过python实现企业微信公众号链接+图文推送 目的:实现点击即看到内容,用更符合用户查看公众号消息的习惯推送消息 步骤: 1.创建企业微信公众号(应用) 2.确定推送内容(BI报表链接)+标 ...

  5. 观察者模式--微信公众号文章的推送

    ​观察者模式 学习容易,坚持不易,如果你坚持看完,会发现设计模式如此简单~ 目录 引子 认识观察者模式 我们先来看看微信公众号和用户之间的关注是怎么回事? 发布者+订阅者=观察者模式 观察者模式的原理 ...

  6. 微信公众号开发消息推送以及图文推送

    今天给大家分享的关注公众号自动推送图文消息,以及做一个超牛逼的机器人. 先看看效果. 发错图了...这是我昨天开发的一款机器人chu了会骂人啥都不会了.我今天将它词库进行了更新和升级,接入了http: ...

  7. 微信公众号每日早安推送,给女朋友的浪漫礼物

    做一个程序员给女朋友的浪漫礼物吧. 最终效果 GitHub地址: https://github.com/ynwynw/weixinPush-public 所用知识点 springboot实现java后 ...

  8. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定,Java微信公众号开发消息推送公众号用户绑定问题 的解决办法

    问题概述 在进行微信公众号开发的时候遇到的这个问题,通过Web开发公众号的模板消息推送,在调试的过程中,需要进行开发者接口联调&调试,在调试之前需要将当前的公众号与用户的微信号进行绑定, 绑定 ...

  9. 微信公众号之验证码推送(spring-boot+测试号)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.验证码推送使用场景 二.测试号中消息模板的搭建 1.条件测试 2.配置消息模板 服务端环境搭建 四.实现验证码推送 ...

最新文章

  1. Sequence point 中文
  2. HTTPS 原理分析
  3. Geany 权限问题:Error opening file ... : permission denied.,原因及解决办法。
  4. 网络投票轻松实现自动化 - 验证码识别的基本思路及方法
  5. NetBeans 7.4 Beta提示警告无效的异常处理
  6. 网页空间 - 概念篇
  7. 仿制波形驱动机器人- SAW
  8. React怎样从函数中辨别类
  9. 深入理解JVM虚拟机读书笔记——垃圾回收算法
  10. 使用labview制作漂亮的按钮
  11. 基于java的商店销售管理系统
  12. hihocoder 1257 Snake Carpet
  13. 龙兵智能名片小程序安装配置教程
  14. 测试工具大全http://blog.csdn.net/vincetest/archive/2006/12/12/1440353.aspx
  15. html设置为邮箱格式,HTML中怎么设置为email链接
  16. js中Object.defineProperty()方法的解释
  17. 2023年全国管理类联考英语二真题及解析
  18. mysql通过idb文件,恢复数据库
  19. FleaPHP 学习笔记2
  20. 2021-05-02

热门文章

  1. 刘强东给京东高管降薪:2千多位总监兄弟工资打8折!并拿出100亿保障”兄弟“基础住房...
  2. 【AI】AI学习目录汇总
  3. 【合泰HT32F52352GPTM多路PWM控制】
  4. 国外cpa广告联盟EMU-lead-cpa联盟详解(1)英文独立站的搭建
  5. window的休眠、睡眠、快速启动
  6. 微机系统与接口——1.微型计算机基础
  7. cocharan-Armitage trend test
  8. TIOBE 6 月编程语言排行榜
  9. E. Boxers Div3
  10. 车牌识别系统分步详解