NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)

Posted 梳碧湖的砍柴人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)相关的知识,希望对你有一定的参考价值。

背景

使用 NodeJS 进行微信公共号开发,首先需要响应微信发送的Token验证,官方文档

填写服务器配置

登录微信公共平台,在开发下的基本配置打开该页面。

依次填写接口的 URL、自定义的 Token、点击随机生成生成 EncodingAESKey、将消息加密方式选择为明文模式,点击提交时微信会进行服务器的 Token 验证。

响应微信发送的Token验证

项目使用 express 开发,中间件 wechatAuth 如下:

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 app = express();

const crypto = require(\'crypto\');
const url = require(\'url\');

//进行sha1加密
function sha1(str) {
let shasum = crypto.createHash("sha1");
return shasum.update(str,\'utf-8\').digest("hex");
}

function wechatAuth(req, res) {
let signature = req.query.signature;
let echostr = req.query.echostr;
let timestamp = req.query.timestamp;
let nonce = req.query.nonce;

let reqArray = [nonce, timestamp, process.env.WX_TOKEN]; // process.env.WX_TOKEN对应填写服务器配置内的 Token

reqArray.sort(); //对数组进行字典排序
let sortStr = reqArray.join(\'\'); //连接数组
let sha1Str = sha1(sortStr.toString().replace(/,/g,""));
if (signature === sha1Str) {
res.end(echostr);
} else {
res.end("false");
console.log("授权失败!");
}
}

app.use(\'/wx/token\',wechatAuth); // 对应填写服务器配置内的 URL

服务器上线后点击基本配置打开该页面内的提交即可

 

以上是关于NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号开发笔记1(nodejs开发的)

微信开发之消息的接收与响应--消息交互基础

微信服务号开发模式下怎么发送推送消息

微信公众平台如何通过php代码给会员发送被动响应消息

NodeJs 开发微信公众号微信事件交互

NodeJs 开发微信公众号微信事件交互