node.js 微信公众号验证URL实例

238 阅读1分钟

微信公众号验证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);
})