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

php:关于微信一直无法通过php token验证, ehcho echo $echoStr; 总是提示不对的问题.

时间:2018-11-16 18:23:37      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:def   新建   public   并且   val   span   define   设置   cti   

用微信官方提供的demo验证token 老是失败, 但是我自己用IIS 加 .net , token就能登录成功, 后来debug, 找各种问题,总是不能解决.

最后还是再搜了搜. 找到这么一篇解决方案.原文在这里:

https://www.cnblogs.com/donlyn/p/5675483.html

解决方案:

最终在echo $_GET[‘echostr‘];前添加了一句代码ob_clean();

 1 <?php
 2 //设置token
 3 define("TOKEN", "sohovan2");
 4 5  //新建object
 6 $wechatObj = new wechatCallbackapiTest();
 7 //没有得到echostr 回声, 先验证
 8 //如果不是get操作. get有没有这个echostr.
 9 if (!isset($_GET[‘echostr‘])) {
10 
11 }else{
12     //如果是get操作, 并且是非空.
13     //验证消息;
14     $wechatObj->valid();
15 }
16 
17 class wechatCallbackapiTest
18 {
19     //验证消息
20     public function valid()
21     {
22         $echoStr = $_GET["echostr"];
23         //返回的是简单,去掉参数
24         header("content-type:text;charset=utf-8");
25         if($this->checkSignature()){
26             ob_clean();
27             echo $echoStr;
28             exit;
29         }
30     }
31  
32     //检查签名
33     private function checkSignature()
34     {
35         $signature = $_GET["signature"];
36         $timestamp = $_GET["timestamp"];
37         $nonce = $_GET["nonce"];
38         $token = TOKEN;
39         $tmpArr = array($token, $timestamp, $nonce);
40         //排序.
41         sort($tmpArr, SORT_STRING);
42         //数组的值转化成字符串.
43         $tmpStr = implode($tmpArr);
44         //sha1
45         $tmpStr = sha1($tmpStr);
46  
47         if($tmpStr == $signature){
48             return true;
49         }else{
50             return false;
51         }
52     }
53     
54     //是否是GET提交
55     public function isGet(){
56         return $_SERVER[‘REQUEST_METHOD‘] == ‘GET‘ ? true : false;
57     }
58 ?>

 这里面有关于php输出缓冲区, 和ob_clean() 的解释,  先没时间研究了, 感兴趣的可以仔细了解一下.

php:关于微信一直无法通过php token验证, ehcho echo $echoStr; 总是提示不对的问题.

标签:def   新建   public   并且   val   span   define   设置   cti   

原文地址:https://www.cnblogs.com/leiliu-lucifer/p/9970745.html

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