Nodejs学习记录:用koa.js开发微信公众号

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

基本原理

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

《Nodejs学习记录:用koa.js开发微信公众号》
其实,我们需要做的事情,就是对HTTP请求,做出响应。具体的请求内容,我们按照特定的XML格式去解析,处理完毕后,也要按照特定的XML格式返回。

平台注册

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

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

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

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:

《Nodejs学习记录:用koa.js开发微信公众号》

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

http://18948u0e32.imwork.net/

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

《Nodejs学习记录:用koa.js开发微信公众号》

服务器配置(已启用)

access_token:

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

《Nodejs学习记录:用koa.js开发微信公众号》

返回的数据

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

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

步骤:

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

 参考

用node.js进行微信公众平台的开发
基于Nodejs构建属于自己的微信公众号
慕课网 7天搞定Node.js微信公众号
koa2 + co-wechat快速搭建微信公众号对接服务
egg + co-wechat快速搭建微信公众号对接服务

    原文作者:AlexZ33
    原文地址: https://segmentfault.com/a/1190000012246932
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞