微信公众号测试号 踩坑之 接口配置信息 106 token check fail

 

开始官网请阅读消息接口使用指南。下的 文档 , 配置好外网, 域名后, 80端口指向的根目录中放入开发文档中的demo.php, 怎么搞都是配置失败! 

网上所有的文档找遍了都没用, 官方文档看了好几遍,  开发文档中的代码也研究了, 还是 

{"errcode":-106,"errmsg":"token check fail"}

搞了一天, 撞墙的心都有了.   什么鬼文档乱七八糟一大堆!!!

 

 

 后来看到一篇文章,说在laravel中配置路由,指向控制器方法, 我就放在tp5.1的框架中, 配置个路由, 指向控制器方法, 把之前测试的网上找的验证文件代码一贴, 改下配置, 直接成功!

当时的心情直想骂娘, 微信使用指南文件我信你个鬼!!!

 1 <?php
 2 
 3 namespace app\home\controller;
 4 
 5 use think\Controller;
 6 use think\Db;
 7 
 8 class Test extends Controller
 9 {
10     // 外部接口, 测试
11     public function wx()
12     {
13         function checkSignature()
14         {
15             $token = 'tstk323';
16             //先获取到这三个参数
17             $signature = input('signature');
18             $nonce = input('nonce');
19             $timestamp = input('timestamp');
20 
21             // 把这三个参数存到一个数组里面
22             $tmpArr = array($timestamp, $nonce, $token);
23             // 进行字典排序
24             sort($tmpArr);
25 
26             // 把数组中的元素合并成字符串,impode()函数是用来将一个数组合并成字符串的
27             $tmpStr = implode($tmpArr);
28 
29             // sha1加密,调用sha1函数
30             $tmpStr = sha1($tmpStr);
31             // 判断加密后的字符串是否和signature相等
32             if ($tmpStr == $signature) {
33 
34                 return true;
35             }
36             return false;
37         }
38 
39         // 如果相等,验证成功就返回echostr
40         if (checkSignature()) {
41             // 返回echostr
42             $echostr = input('echostr');
43             if ($echostr) {
44                 echo $echostr;
45                 exit;
46             }
47         }
48     }
49 
50 }

 

posted @ 2020-03-16 20:35  歲夢灬沉浮  阅读(4518)  评论(0编辑  收藏  举报