(基于nodejs)微信测试号(接口配置信息)验证服务器的URL
2016-06-16 14:27
706 查看
步骤1:查看微信公众号开发者文档
(http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html)
我的理解如下:当开发者在测试号中配置点击提交后。微信服务器会发送一条GET请求到你所填写的服务器的地址上。
例如我这里是:http://123.206.96.249:8080 其中,GET请求携带四个参数(signature、timestamp、nonce、echostr)。
(友情建议:学生们应该玩玩腾讯云的云服务器,太给力了,每个月才1元!有了服务器,linux命令也慢慢得心应手了 !!!) 。
服务器接收到GET请求,取出四个参数,然后进行如下操作:
1)将token (自己设置的) 、timestamp(时间戳)、nonce(随机数)三个参数进行字典排序
2)将上面三个字符串拼接成一个字符串再进行sha1加密
3)将加密后的字符串与signature进行对比,若成功,返回echostr
步骤2:在你的服务器上新建一个verifyURL.js文件,代码如下:
运行代码: node verifyURL.js (开启服务器)
步骤3:在你的测试号上填写服务器的配置(URL)
点击提交,OK,大功告成!!!
接下来,你就可以愉快地进行微信的开发之旅了……
(http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html)
我的理解如下:当开发者在测试号中配置点击提交后。微信服务器会发送一条GET请求到你所填写的服务器的地址上。
例如我这里是:http://123.206.96.249:8080 其中,GET请求携带四个参数(signature、timestamp、nonce、echostr)。
(友情建议:学生们应该玩玩腾讯云的云服务器,太给力了,每个月才1元!有了服务器,linux命令也慢慢得心应手了 !!!) 。
服务器接收到GET请求,取出四个参数,然后进行如下操作:
1)将token (自己设置的) 、timestamp(时间戳)、nonce(随机数)三个参数进行字典排序
2)将上面三个字符串拼接成一个字符串再进行sha1加密
3)将加密后的字符串与signature进行对比,若成功,返回echostr
步骤2:在你的服务器上新建一个verifyURL.js文件,代码如下:
var PORT=8080; //监听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); });
运行代码: node verifyURL.js (开启服务器)
步骤3:在你的测试号上填写服务器的配置(URL)
点击提交,OK,大功告成!!!
接下来,你就可以愉快地进行微信的开发之旅了……
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- 微信悄悄升级群聊功能:个人微信营销号的福音
- 突击部队拼多多
- 我是运营,我没有假期
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- 微信的成功,靠的是QQ导流吗?
- 「Linux 中国」2018 微信文章排行榜
- 马化腾亲自“站台” 企业微信和个人微信互通能带来什么?
- 一个微信群的兴亡
- 微信服务号推送模板消息接口
- C#微信公众号与订阅号接口开发示例代码
- 我也有微信朋友圈了 Android实现
- PHP限制页面只能在微信自带浏览器访问的代码
- JavaScript判断微信浏览器实例代码
- HTML5实现微信拍摄上传照片功能