• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

用微信官方提供的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() 的解释,  先没时间研究了, 感兴趣的可以仔细了解一下.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php代码执行漏洞发布时间:2022-07-10
下一篇:
[单选题]有关PHP面向对象的说法,不对的是:发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap