用Node.js开发微信公众号(初学)——准备

十一之后的空窗期,想静下来写点东西,不知道能支撑到最后嘛~~~~~~~~~~~~~大家一起共勉

参照:
http://www.jb51.net/article/110747.htm
https://www.cnblogs.com/zcy123-com/p/6922724.html
https://www.cnblogs.com/xuange306/p/4971702.html

准备工作:

  1. 申请微信公众号
  2. 安装、搭建node环境
  3. 安装node.js(https://nodejs.org/en/download/)
  4. 打开cmd:
    node -v //查看是否安装成功
    npm install -g express //安装express模块(用于创建服务器,默认端口号3000)
    npm install -g express-generator@4 //由于Express自4. 版本中将命令工具分离出来

接入微信公众平台:

1.创建Node.js 项目:

cmd:进入项目存放位置,执行express wechat (命名随意)


用Node.js开发微信公众号(初学)——准备_第1张图片
图片.png

用Node.js开发微信公众号(初学)——准备_第2张图片
图片.png

cmd:进入到根目录下wechat,执行npm i
接下来就是验收成果:
启动项目 cmd:npm run start


图片.png

用Node.js开发微信公众号(初学)——准备_第3张图片
图片.png

2.部署项目:

这里用了Sunny-Ngrok内网穿透,因为它提供免费内网穿透服务,免费服务器支持绑定自定义域名:
在官网注册:https://www.ngrok.cc
官网左侧开通一个免费隧道:开通教程

用Node.js开发微信公众号(初学)——准备_第4张图片
图片.png

3.公众号的接入配置:

登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮。


用Node.js开发微信公众号(初学)——准备_第5张图片
图片.png

URL:刚刚映射好的外网地址
cmd:在根目录下执行 npm i crypto //安装crypto模块(加密解密)
在根目录下新建config.json,用来设置token:

{
    "token":"****"   // 填入你的token值
}

修改routes文件夹下的index.js文件,如下:

var express = require('express'),   // 引入express模块
      crypto = require('crypto'),    // 引入加密模块
      config = require('../config'),   // 引入配置文件
      router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
  var signature = req.query.signature,   // 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
      timestamp = req.query.timestamp,   // 时间戳
      nonce = req.query.nonce,           // 随机数
      echostr = req.query.echostr;       // 随机字符串

  // 1)将token、timestamp、nonce三个参数进行字典序排序
  var array = [config.token, timestamp, nonce];
  array.sort();

  // 2)将三个参数字符串拼接成一个字符串进行sha1加密
  var string = array.join(''),
      hashCode = crypto.createHash('sha1'),   // 创建加密类型
      resultCode = hashCode.update(string, 'utf8').digest('hex');  // 对字符串进行加密

  //3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
  if (resultCode === signature) {
    res.send(echostr);
  } else {
    res.send('error!!!');
  }
});

module.exports = router;

回到微信公众平台:


用Node.js开发微信公众号(初学)——准备_第6张图片
图片.png

提交成功!!!
接入微信公众平台成功!!!

你可能感兴趣的:(用Node.js开发微信公众号(初学)——准备)