開始官網請閱讀消息接口使用指南。下的 文檔 , 配置好外網, 域名后, 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 }