微信公众号验证URL地址及签名,官方有实例代码,写得啰嗦:
const crypto = require('crypto');
const url = require('url');
exports.wechat = (req,res) => {
var query = url.parse(req.url, true).query;
var signature = query.signature;
var timestamp = query.timestamp;
var nonce = query.nonce;
var echostr = query.echostr;
if(check(timestamp, nonce, signature, "12345")){
res.end(echostr);
}else{
res.end("It is not from weixin");
}
};
function check(timestamp, nonce, signature, token){
var currSign,tmp;
tmp = [token,timestamp,nonce].sort().join("");
currSign = crypto.createHash("sha1").update(tmp).digest("hex");
return (currSign === signature);
};
不就是一个请求验证,简单一点不香吗:
const url = require('url');
router.get('/', (req, res, next) => {
var query = url.parse(req.url, true).query;
var echostr = query.echostr;
res.end(echostr);
})