位置: 编程技术 - 正文

详解nodejs微信公众号开发——2.自动回复(node.js开发微信小程序)

编辑:rootadmin

推荐整理分享详解nodejs微信公众号开发——2.自动回复(node.js开发微信小程序),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs微信公众号开发,nodejs实现微服务,node.js开发微信小程序,node wechat,nodejs wechat,node wechat,node 微信公众号开发,node 微信,内容如对您有帮助,希望把文章链接给更多的朋友!

上一篇文章:nodejs微信公众号开发(1)接入微信公众号,本篇文章将在此基础上实现简单的回复功能。

1. 接入代码的优化

之前我们简单粗暴的实现了微信公众号的接入,接入的代码直接写在了app.js文件里面,从项目开发的角度而言,不便于日后代码的维护,所以将这部分代码独立出来,按照koa的风格,写成一个中间件。

在根目录下新建wechat文件夹,新建generator.js文件,

此时app.js的内容变成:

2. 获取access_token

access_token是开发程序与wexin公众平台交互的一把钥匙,调用绝大部分接口都需要用到access_token。

access_token的特点:

有效期为2小时(s),过期自动失效,需要重新获取; 只要更新了access_token,之前的access_token自动失效;

解决方案:

系统每隔2小时自动去获取一下access_token的值,确保access_token始终是有效的; 为了方便频繁调用,将access_token存储在唯一的一个地方(数据库、文件等),所有子系统都能访问。

程序中采用构造函数的方式,在生成实例,完成初始化工作的的过程中,读取存储在config/wechat.txt文件中的票据,判断是否为空且是否过期,选择性的重新获取数字并且保存在原文件里面,关于获取access_token的官方文档介绍可见:获取access_token。

我们在moudle.exports中实例化一个Wechat:

这样确保了每次程序启动都会获取对access_token的有效性进行检验,并且每个一段时间会自动获取一个新的access_token。

3. 处理微信消息的步骤

详解nodejs微信公众号开发——2.自动回复(node.js开发微信小程序)

无论是事件推送还是消息推送,微信服务器都是以post的方式发送请求,推送的数据类型不是json而是xml,处理推送消息一般分为五个步骤:

处理POST类型的控制逻辑,接收xml数据包; 解析数据包,获取数据包的消息类型或数据类型; 拼装自定义的消息; 包装成xml格式; 在5秒钟内返回消息。

3.1 接收xml数据

通过raw-body模块可以获取http模块中的request对象,并且可以对数据进行拼装,从而拿到一个buffer的xml对象

3.2 解析xml数据

使用xml2js模块,将xml数据解析成对象格式

3.3 格式化xml数据

从解析的xml数据来看,数据虽然已经呈现键值对的形式,但是其值是数组的形式,需要进行扁平化处理:

其本质就是遍历数组中的值,因为在多图文的消息中存在嵌套的情况:

3.4 判断消息类型并回复

这里针对subscribe事件,新关注后自动回复文本消息终于等到你,还好我没放弃

注:这里只是简单地实现一下自动回复功能,这种拼接字符串的方式还是很不方便的,后面会封装成接口。

使用手机微信扫描测试账号的二维码,即可关注,同时接收到测试公众号推送的消息!

啦啦,一个简单的关注回复就完成了。

标签: node.js开发微信小程序

本文链接地址:https://www.jiuchutong.com/biancheng/377929.html 转载请保留说明!

上一篇:详解nodejs微信公众号开发——1.接入微信公众号(nodejs微信小程序开发工具)

下一篇:详解nodejs微信公众号开发——3.封装消息响应模块(node 微信公众号开发)

  • 政府补助是否可以抵扣税
  • 销项税额的计算方法
  • 出口退税计算公式 中华会计网校
  • 挂车交车船税吗
  • 公司注销了账本还需保留吗
  • 外购商品发放给员工 进项税额能不能抵扣
  • 出差的餐饮发票的税率是多少
  • 城镇土地使用税的征税范围有哪些
  • 不动产什么时候可以抵扣进项税额
  • 滴滴电子发票可以看到行程吗
  • 建设工程的停工损失包括哪些内容
  • 利润的计算方法数学
  • 一般纳税人有什么优惠政策
  • 不征税收入税屋
  • 职工福利费税前扣除标准最新
  • 固定资产转固流程图
  • 定期定额自行申报表计税依据
  • 取得劳务收入的会计分录
  • safari下载的文件怎么删除
  • 服务业成本会计分析
  • win11输入法候选字不见了
  • 工资薪金怎么申报9
  • 免征的增值税怎么做账
  • cpuz.exe
  • 怎么添加动态磁贴
  • php字符串赋值
  • 经营出租设备属于什么科目
  • 评估价值时点依据什么
  • msworks.exe - msworks是什么进程 有什么用
  • 购入工程物资用于建设厂房,购入后直接领用至工程项目
  • 哪个是发票抵扣项目
  • 偿还不了债务会怎么样
  • win7纯净版系统怎么安装
  • PHP:imagecreatetruecolor()的用法_GD库图像处理函数
  • 收到保险公司退款
  • citespace关键词共现分析
  • 福利费需要缴税吗
  • yii2实现根据时间搜索的方法
  • php语言之面向对象编程 educoder
  • vue发布时间
  • 20分钟,使用Amazon SageMaker快速搭建属于自己的AIGC应用
  • js中的数组
  • 政府会计公共基础设施分类
  • 铁路运费的印花税进什么科目
  • 发票收到款项未付做什么凭证编制
  • 进账加计抵减政策
  • 增值是指哪几点
  • 税率变更协议怎么写
  • 金蝶低值易耗品报废操作
  • 固定资产以前年度多计提怎么办
  • 折旧方法有哪些英文
  • 不需要支付的应付账款
  • 企业购买理财产品收益要交税吗
  • 长期挂账应付款的处理方法
  • 电商公司不用交税吗
  • 分期收款定义
  • 软件公司购进软件会计科目
  • 小规模开具的1%专票 一般纳税人抵扣
  • 汇算清缴弥补以前年度亏损多少年
  • 餐费补贴是否计入成本
  • 附报资料是什么
  • sql 查询效率
  • mac中怎么给表情添加文字
  • 教你鉴别耳机音质的好坏的几大技巧
  • win10预览版好吗
  • centos必学的60个命令
  • linux的总结
  • 000.exe病毒
  • win10自带邮箱无法使用126
  • JavaScript中的数据类型分为两大类
  • win10 putty
  • 关于ie浏览器下面说法正确的是
  • 使用express
  • 测试驱动开发的基本过程
  • 利用python中的scikit-learn对疫情数据挖掘
  • jquery mobile开发环境
  • 国家税务总局令第43号公告
  • 出口运输费会计分录
  • 成都税务举报电话多少
  • 杨柳青还迁房2024年还建不建
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设