微信公眾號測試號 踩坑之 接口配置信息 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM