微信测试号的URL和Token原理
2015-10-31 19:06
363 查看
在我们提交URL和Token信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: Signature(微信加密签名)、timestamp(时间戳)、nonce(随机数)、echostr(随机字符串)。
Signature 结合了开发者填写的Token参数和请求中的timestamp参数、nonce参数。
$_GET是php的全局数组变量,存储了GET请求携带的变量名称和值,通过该变量我们就能获取微信服务器中携带的上述四个参数的值了。
Signature 结合了开发者填写的Token参数和请求中的timestamp参数、nonce参数。
$_GET是php的全局数组变量,存储了GET请求携带的变量名称和值,通过该变量我们就能获取微信服务器中携带的上述四个参数的值了。
/** * 验证URL来源是否正确 * @return boolean */ private function checkSignature() { //获取参数值 $signature = $_GET['signature']; $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $params = array($this->_token, $timestamp, $nonce); //按照字典顺序排序将三个参数排序 sort($params); $sig = sha1(implode($params)); //将数组拼接成字符串在shal加密 return $sig == $signature; //判断获取的签名是否和本地计算的相同 } /** *检查签名 *如果正确,将微信服务器中的echostr字段原样返回 */ private function sourceCheck() { if ($this->checkSignature()) { $echostr = $_GET['echostr']; echo $echostr; }else{ throw new Exception('Wrong Signature'); } exit(0); } }
相关文章推荐
- 社交巨头三国杀:微信、WhatsApp、Line到底有啥区别?
- Android之使用Http协议实现文件上传功能
- 微信悄悄升级群聊功能:个人微信营销号的福音
- 我是运营,我没有假期
- 如何做到日消息量100万的微信公众号?
- 论微信取消推送功能的可能性(原创)
- 微信的成功,靠的是QQ导流吗?
- mysql集群之MMM简单搭建
- 通晓网络测试常用命令
- 微信服务号推送模板消息接口
- Nodejs学习笔记之测试驱动
- PHP限制页面只能在微信自带浏览器访问的代码
- HTML5实现微信拍摄上传照片功能
- 微信小程序去哪里找 小程序到底如何使用(附小程序名单)
- 使用jQuery.wechat构建微信WEB应用
- nw.js实现类似微信的聊天软件
- JS版微信6.0分享接口用法分析