Nodejs开发微信公众号--测试号配置篇

Nodejs开发微信公众号--测试号配置篇

微信公众号感觉入门是真的难啊,受权限的约束,个人开发者真的挺难走的,特别像博主这种主攻前端的人。由于迟迟没把域名备案办下来。先从测试号入手。

申请页面信息

打开测试号申请页面,可以看到需要填写的内容。

测试号申请页面

首先要做的就是接口配置信息这部分内容了。

内网穿透

一般我们会在本地进行开发,因此必须使用工具进行内网穿透,将一个公网域名穿透到本地内网。用NATAPP可以做到。使用方法很简单,这里不再赘述。

NodeJS服务器搭建

我这边使用express生成器搭建服务。

1
2
3
4
5
6
7
8
9
10
// 全局安装生成器
npm install express-generator -g
// 生成项目,并指定模板引擎
express --view=ejs wechat_express

cd wechat_express
// 安装node依赖
npm install
// 启动
set DEBUG=myapp:* & npm start

新建一个配置文件config/index.js

1
2
3
4
5
const CONFIG = {
port: '4300',
token: '你的token'
}
exports.CONFIG = CONFIG;

在app.js中指定端口

1
app.set('port', config.port);

写路由,进行微信公众号的token验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var express = require('express');
var crypto = require('crypto');
var config = require('../config/index').CONFIG;
var router = express.Router();

router.get('/',function(req,res){
console.log(req)
//1.获取微信服务器Get请求的参数 signature、timestamp、nonce、echostr
var signature = req.query.signature,//微信加密签名
timestamp = req.query.timestamp,//时间戳
nonce = req.query.nonce,//随机数
echostr = req.query.echostr;//随机字符串

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

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

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

module.exports = router;

启动服务,并在测试号申请页面,填入URL和Token进行验证。验证成功后便可以继续下一步了。

JS接口安全域名

暂时还未用到,填写URL所在域名即可。


扫一扫下方小程序码或搜索Tusi博客,即刻阅读最新文章!

Tusi博客

You forgot to set the qrcode for Alipay. Please set it in _config.yml.
You forgot to set the qrcode for Wechat. Please set it in _config.yml.
You forgot to set the business and currency_code for Paypal. Please set it in _config.yml.
You forgot to set the url Patreon. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×