详解nodejs微信公众号开发——1.接入微信公众号


Posted in NodeJs onApril 10, 2017

接入微信公众号是开发的第一步,万事开头难,走好第一步,后面的路就更宽广。

1.公众平台测试帐号的使用

登录微信公众平台,由于很多开发人员并没有认证的的微信公众号,所以比较折中的方式是使用公众平台测试帐号来测试功能,其优势是能够测试微信公众号的绝大部分功能,不受认证门槛的限制。

详解nodejs微信公众号开发——1.接入微信公众号

进入测试账号管理界面:

我们需要配置接口的信息,URLToken是微信公众平台和本地开发服务建立连接的桥梁。

详解nodejs微信公众号开发——1.接入微信公众号

微信配置好后,扫面下方的测试号二维码,即可以在手机上测试开发的功能。

详解nodejs微信公众号开发——1.接入微信公众号

2.验证公众号

详解nodejs微信公众号开发——1.接入微信公众号

一图胜千言。接入公众号时,微信公众平台需要验证开发者的身份,向开发者填写的URL发送一个GET请求,请求中包含4个参数:signatureechostrtimestampnonce,收到该请求,我们需要做的事情:

  1. tokentimestampnonce三个参数进行字典排序;
  2. 将三个字符串拼接成一个字符串进行sha1加密;
  3. 将加密后的字符串与signature进行比较,如果相同,表示这个请求来自微信,我们直接原样返回echostr的内容,接入验证成功。

3.搭建开发服务器

搭建开发服务器的方式有很多,如购买云服务器、使用花生壳、ngrok、localtunnel等。这里为了简单起见采用localtunnel。先全局方式安装localtunnel,

npm install -g lt

启动lt

lt --port 8080  //对外暴露8080端口,可端口号可自己随便设定

4.编写代码

好了,现在开始编写app.js的代码:

'use strict'

var Koa = require('koa');
var sha1 = require('sha1');

var config = {
  wechat:{
    appID:'...', //填写你自己的appID
    appSecret:'...', //填写你自己的appSecret
    token:'...' //填写你自己的token
  }
};

var app = new Koa();

app.use(function *(next){
  var token = config.wechat.token;
  var signature = this.query.signature;
  var nonce = this.query.nonce;
  var timestamp = this.query.timestamp;
  var echostr = this.query.echostr;
  var str = [token,timestamp,nonce].sort().join(''); //按字典排序,拼接字符串
  var sha = sha1(str); //加密
  this.body = (sha === signature)? echostr + '' : 'failed'; //比较并返回结果
});
app.listen(8080);

5.配置测试公众号信息

代码编写完毕,现在开始正式配置啦。在终端中输入lt --port 8080启动localtunnel,得到对外可访问的URL:

详解nodejs微信公众号开发——1.接入微信公众号

这个URL填写到测试账号管理界面中的URLToken字段可随意填写,方便起见,就用wemovie吧!

填写完毕,点击提交,发现验证成功,恭喜!

详解nodejs微信公众号开发——1.接入微信公众号

注:

  1. 由于localtunnel不是很稳定,所以可能一开始点击提交提示的是黄条的配置失败,需要多点一两次按钮;
  2. 每次重启程序,都需要重启localtunnel获取新的URL,然后重新配置。(这就是选择简单付出的代价T_T)

到此为止,已经打开了通向微信公众号开发的大门,接下来,我们将继续探索nodejs微信公众号开发之旅。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
Nodejs进程管理模块forever详解
Jun 01 NodeJs
nodejs命令行参数处理模块commander使用实例
Sep 17 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
配置nodejs环境的方法
May 13 NodeJs
深入理解Nodejs Global 模块
Jun 03 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
使用nodejs分离html文件里的js和css详解
Apr 12 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 #NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 #NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 #NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 #NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 #NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 #NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 #NodeJs
You might like
php无限级分类实现评论及回复功能
2019/02/18 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Python生成随机MAC地址
2015/03/10 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
幼儿园教师备课制度
2014/01/12 职场文书
企业法人授权委托书
2014/04/03 职场文书
学风建设演讲稿
2014/09/12 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
关于分班的感言
2015/08/04 职场文书