開始官網請閱讀消息接口使用指南。下的 文檔 , 配置好外網, 域名后, 80端口指向的根目錄中放入開發文檔中的demo.php, 怎么搞都是配置失敗!
網上所有的文檔找遍了都沒用, 官方文檔看了好幾遍, 開發文檔中的代碼也研究了, 還是
{"errcode":-106,"errmsg":"token check fail"}
搞了一天, 撞牆的心都有了. 什么鬼文檔亂七八糟一大堆!!!
后來看到一篇文章,說在laravel中配置路由,指向控制器方法, 我就放在tp5.1的框架中, 配置個路由, 指向控制器方法, 把之前測試的網上找的驗證文件代碼一貼, 改下配置, 直接成功!
當時的心情直想罵娘, 微信使用指南文件我信你個鬼!!!
<?php namespace app\home\controller; use think\Controller; use think\Db; class Test extends Controller { // 外部接口, 測試 public function wx() { function checkSignature() { $token = 'tstk323'; //先獲取到這三個參數 $signature = input('signature'); $nonce = input('nonce'); $timestamp = input('timestamp'); // 把這三個參數存到一個數組里面 $tmpArr = array($timestamp, $nonce, $token); // 進行字典排序 sort($tmpArr); // 把數組中的元素合並成字符串,impode()函數是用來將一個數組合並成字符串的 $tmpStr = implode($tmpArr); // sha1加密,調用sha1函數 $tmpStr = sha1($tmpStr); // 判斷加密后的字符串是否和signature相等 if ($tmpStr == $signature) { return true; } return false; } // 如果相等,驗證成功就返回echostr if (checkSignature()) { // 返回echostr $echostr = input('echostr'); if ($echostr) { echo $echostr; exit; } } } }
轉載:https://www.cnblogs.com/xujian2016/p/12506340.html
-----------------------------------------------------------自己項目---------------------------------------------------------------------