checkSignature是用来验证微信服务器是否可以和自己的服务器通讯的狗玩意儿~~~~~
- 参数的获取,这里的验证步骤得用
this.get()
获取参数; - 需要安装sha1包,
npm install sha1;
- 官方文档用的php代码演示,直接返回的布尔值。thinkjs直接返回布尔值会报以下错误
{"errcode":-106,"errmsg":"token check fail"}
解决办法,return this.json();
const sha1 = require('sha1');
async checkSignatureAction () {
let signature = this.get('signature');
let echostr = this.get('echostr');
let token = 'TOKEN';//公号后台配置的TOKEN
let timestamp = this.get('timestamp');
let nonce = this.get('nonce');
let array = new Array(token, timestamp, nonce);
array.sort();
let str = array.toString().replace(/,/g, "");
let code = sha1(str);
if (code == signature) return this.json(echostr);
return this.json('error');
}
网友评论