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

区别于网上不少教程,这里咱们用Koa.js进行开发html

基本原理

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

图片描述
其实,咱们须要作的事情,就是对HTTP请求,作出响应。具体的请求内容,咱们按照特定的XML格式去解析,处理完毕后,也要按照特定的XML格式返回。node

平台注册

要想完成对微信公众平台的开发,咱们须要注册一个微信公众平台账号。注册步骤以下:   打开微信公共平台的官网,https://mp.weixin.qq.com/,点击“当即注册”。数据库

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

在注册完成之后,咱们要对公众号进行一些基本的设置。登陆公众号,找到【公众号设置】,而后设置头像以及其它信息。服务器

nodejs环境搭建

咱们须要在公网上找一台服务器,以即可以启动咱们的nodejs的环境,启动环境后经过设置访问地址,咱们就能够接收微信服务器发送的消息了,而且咱们也能够向微信服务器发送消息了。微信

在公网的服务器中安装完成nodejs之后,咱们还须要安装一些nodejs所用到的模块:session

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

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

微信开发者模式配置:

配置URL和token:app

图片描述

首先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秒种内返回回去

 参考

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

相关文章
相关标签/搜索