微信平台开发之token验证

以前一直做过微信的开发,毕竟微信开发是现在广大程序猿不得不做的一个开发。其中包括微信的支付,微信的oauth登录。但是一直都没有系统的去完成过一个微信的所有开发,略有遗憾。最近自己申请了一个微信的订阅号,下面记录下,微信的Token验证吧。

进行微信公众平台的开发,进行token验证是第一步,如下图所示。url填写自己的服务器地址。Token这里可以自定义,但是要和代码中的Token保持一致。

验证代码如下:

var crypto = require('crypto');
var url = require('url');
exports.wechat = function(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,"weixin")){
	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);
};

获取url中包含的signature,timestamp,nonce,echostr。然后将token,timestamp,nonce按照字典序排列。并且加密,再与接收到的signature进行比对,如果相同,则是来自微信的请求,反之则不是。在配置完了后,本来进行其他开发。到最后发现个人申请的订阅号并不能进行认证,所以,这次只能再忍着了。以后公司有类似的资源的话,再做吧。

猜你喜欢

转载自blog.csdn.net/swimming_in_IT_/article/details/82712142