代码改变世界

node微信公众号开发---域名绑定

2018-05-18 21:32  muamaker  阅读(553)  评论(0编辑  收藏  举报
var TOKEN='weixin';           //必须与测试号所填写的Token相同


function checkSignature(params,token){
    var key=[token,params.timestamp,params.nonce].sort().join(''); 
     //将token (自己设置的) 、timestamp(时间戳)、nonce(随机数)三个参数进行字典排序
    var sha1=crypto.createHash('sha1');
     //将上面三个字符串拼接成一个字符串再进行sha1加密
    sha1.update(key);
    return sha1.digest('hex') ==params.signature;
     //将加密后的字符串与signature进行对比,若成功,返回echostr
}

/* GET home page. */
router.get('/', function(req, res, next) {
	
    var query = req.query;
	var params=qs.parse(query);
	  if(!checkSignature(params,TOKEN)){
        //如果签名不对,结束请求并返回
        res.send('signature fail');
    }
	  if (req.method == "GET") {
        //如果请求是GET,返回echostr用于通过服务器有效校验
        res.send(params.echostr);
    }else{
    	res.send({post:"json",wexin:"这是微信访问接口"})
    }
});

 这里域名绑定,需要做外网穿透,可以参考 http://www.cnblogs.com/muamaker/p/8432586.html