码迷,mamicode.com
首页 > 微信 > 详细

nodejs----微信注册测试号获取token

时间:2019-03-16 12:28:23      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:date   fun   java   return   rip   server   sha1   post请求   std   

var PORT=8081;                 //监听8080端口号
var http=require(‘http‘);  
var qs=require(‘qs‘);
var TOKEN=‘yezhenxu‘;           //必须与测试号所填写的Token相同

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

var server=http.createServer(function (request,response) {
   var query=require(‘url‘).parse(request.url).query;
    var params=qs.parse(query);

    console.log(params);
    console.log("token :",TOKEN);


    if(!checkSignature(params,TOKEN)){
        //如果签名不对,结束请求并返回
        response.end(‘signature fail‘);
    }

    if (request.method == "GET") {
        //如果请求是GET,返回echostr用于通过服务器有效校验
        response.end(params.echostr);
    }else{
        //否则是微信给开发者服务器的POST请求
        var postdata=‘‘;
        request.addListener("data",function(postchunk){
            postdata+=postchunk;
        });
        //获取到了POST数据
        request.addListener("end",function(){
            console.log(postdata);
            response.end(‘success ‘);
        });
    }
});

server.listen(PORT, function () {
    console.log(‘Server running at port:‘+PORT);
});

  

nodejs----微信注册测试号获取token

标签:date   fun   java   return   rip   server   sha1   post请求   std   

原文地址:https://www.cnblogs.com/w-s-l123/p/10541540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!