這篇文章介紹的內容是關於thinkphp5微信公眾號token認證,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
首先說明本人開發微信公眾號是用的thinkphp5框架,如果不用框架可以說開發起來很麻煩,本人開始在Ubuntu環境下開發,後來遇到問題實在無法解決導致換到windows 開發環境下開發,免去了很多麻煩使用的notepad 作為編輯器,這個編輯器功能很強大,thinphp5下載地址在這裡:http://www.thinkphp.cn/down.html,我下載的是核心板,可以依照個人喜好自行下載;
下面也要介紹其他配置,首先你要註冊一個公眾號,然後自己能登錄,如下圖所示:
#這是進入介面之後,詳細的註冊過程就不在贅述了比較簡單可以查看微信開發文件:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5,可以根據需要點擊查看,這裡要說一下如果是個人用戶就選擇訂閱號,如果是企業用就選擇服務號,不過都需要認證後才能使用,個人要實名制,企業要企業認證具體認,申請完併登陸後進入如下圖所示頁面,然後點擊左下角的基本配置:
#進入設定頁面如下圖:
上面這個是已經配置好的,如果沒有配置,圖中的停用符號顯示的啟用字樣,並且下面的資訊都未填寫,首先你要點擊修改配置,然後填寫伺服器url位址,這個位址必須是外網能夠存取的,這裡要用的一個軟體叫natapp,具體連結是:https://natapp.cn/ login; 進去之後註冊一下,而且要實名制認證之後才能購買通道,可以購買免費的通道,然後按著教程來操作就能將自己的電腦作為開發環境,當然你也可以申請購買其他伺服器如阿里雲,新浪雲、騰訊雲等等;
#在做微信開發之前要用到驗證自己開發者身份,微信開發團隊給了一個認證環節即:1)將token、timestamp、nonce三個參數進行字典序排序2)將三個參數字串拼接成一個字串進行sha1加密3)開發者獲得加密後的字符串可與signature對比,標識該請求來自微信;這三個請求;其實很簡單,查看微信公眾開發文檔,裡面也有源代碼,下面我們上代碼:
public function index(){ $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $token = '你定义的token令牌'; $signature = $_GET['signature']; $array = array($timestamp,$nonce,$token); sort($array); //将排序后的三个参数拼接之后参数拼接之后进行sha1加密 $tmpstr = implode('',$array); $tmpstr = sha1($tmpstr);$this->wxLog('hello'); //将加密后的字符串与signature进行对比; if($tmpstr == $signature && isset($_GET['echostr'])){ echo $_GET['echostr']; exit; }else{ $this->responseMsg(); } }
·簡單說明,在這裡我簡單加了一個判斷,如果我不是驗證token我只是來接入並相應微信的,我就會不必要在進行驗證了,而且如果不是token驗證微信伺服器也不會發送echostr這個字段的數據,所以如果沒有這個數據我們就進行相關操作比如響應信息等等;如果token認證失敗,請檢查文件存放路徑對不對,自己的程式碼有沒有問題,我當初是走了很多彎路,才認證成功的,第一次認證失敗不要緊,多點擊幾次就可以了;
當你申請完natapp並完成內透之後,將網址填入url處,注意:這個網址要能直接存取你的接口檔案就是上面那串程式碼的檔案;然後寫一下你定義的token令牌,在上面程式碼出填寫,然後隨機產生一個“訊息加解密金鑰”,產生之後點選提交,第一次可能認證失敗,多點擊幾次,如果出現認證失敗的現像要仔細檢查自己的代碼和url,我當初是url填寫的不對導致一直認證失敗,所以一定要填寫正確的url地址,提交成功之後就可以繼續開發你的功能了~!
thinkphp 隱藏index.php iis apache nginx
以上是thinkphp5微信公眾號token認證的詳細內容。更多資訊請關注PHP中文網其他相關文章!