博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs学习记录:用koa.js开发微信公众号
阅读量:6268 次
发布时间:2019-06-22

本文共 1359 字,大约阅读时间需要 4 分钟。

区别于网上很多教程,这里我们用Koa.js进行开发

基本原理

  • 微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这里就是我们的具体实现)。服务处理完毕,然后转发给微信服务器,微信服务器再将具体响应回复到终端;
  • 通信协议为:HTTP;
  • 数据格式为:XML。

图片描述

其实,我们需要做的事情,就是对HTTP请求,做出响应。具体的请求内容,我们按照特定的XML格式去解析,处理完毕后,也要按照特定的XML格式返回。

平台注册

要想完成对微信公众平台的开发,我们需要注册一个微信公众平台帐号。注册步骤如下:   打开微信公共平台的官网,,点击“立即注册”。

然后根据提示,填写基本信息,邮箱激活,选择类型,信息登记,公众号信息,完成注册。

在注册完成以后,我们要对公众号进行一些基本的设置。登录公众号,找到【公众号设置】,然后设置头像以及其它信息。

nodejs环境搭建

我们需要在公网上找一台服务器,以便可以启动我们的nodejs的环境,启动环境后通过设置访问地址,我们就可以接收微信服务器发送的消息了,并且我们也可以向微信服务器发送消息了。

在公网的服务器中安装完成nodejs以后,我们还需要安装一些nodejs所用到的模块:

  • koa
  • koa-bodyparser
  • koa-router
  • koa-session
  • koa-static
  • request //http请求
  • sha1 //加密模块
  • rowbody :

    • 下面会通过这个raw-body模块,把this上的request对象也就是http模块中的request对象,去拼装它的数据,最终可以拿到一个buffer的xml数据

微信开发者模式配置:

配置URL和token:

图片描述

首先URL要填写公网上我们安装nodejs接收与发送数据的路径。我们可以填写【访问测试】的地址,然后加上对应的路由就可以了。

http://18948u0e32.imwork.net/

Token要与我们自定义服务器端的token一致。填写完成以后,就可以点击提交了,在提交以前,我们启动app.js(点击【提交运行】)。这样根据我们的路由匹配就可以验证签名是否有效了。

图片描述

服务器配置(已启用)

access_token:

  • 让我们的系统每隔2小时启动去刷新一次票据,这样无论何时我们内部调用接口,这个票据始终是最新的。
  • 为了方便频繁调用,我们需要把票据储存在一个地方,并且是唯一的一个地方。(数据库或文件)

图片描述

返回的数据

{"access_token":"4eEGodhnohrWKUGynL1Dgcyt-88HtE-7x1KtobAh_7jQvk8qD1ObUvd8dwqzNdfQHJi4LrhO8s55b27cJCID-Q0KXiP6PmYNoHR_pp2nZASQeEkBYiOLlnrAS1OyjYDkWSNfAEAOKF","expires_in":1512120482046}

微信服务器接入认证和自动回复:

步骤:

  1. 处理POST类型的控制逻辑,接受一个XML的数据包(是的,不是json的,蛋疼)
  2. 解析这个数据包(获得数据包的消息类型或者事件类型)
  3. 拼装出我们定义好的消息
  4. 包装成XML的格式
  5. 在5秒种内返回回去

 参考

转载地址:http://ruvpa.baihongyu.com/

你可能感兴趣的文章
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
spring mysql多数据源配置
查看>>
[React] Override webpack config for create-react-app without ejection
查看>>
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
查看>>
测试java的父子类化
查看>>
HDOJ 1008
查看>>
安装thrift出现的一些问题
查看>>
makefile编写---单个子目录编译模板
查看>>
Oracle DB_LINK如何使用
查看>>
cv resource
查看>>
关于加快INSERT语句执行速度和HINT /*+ append */及/*+ append nologging */的使用
查看>>
JDK源代码学习系列07----Stack
查看>>
firefox
查看>>
PS批处理的使用
查看>>
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 【转】
查看>>
Quartz作业调度框架
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
js-权威指南学习笔记13
查看>>
《超级时间整理术》晨读笔记
查看>>
Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner
查看>>