最近要啟動微信項目,上個月就開始了解微信的開發,這個月要啟動項目,配置微信公眾號信息一直失敗。為此,我甚至手工寫了微信提交過來的記錄,如:
×tamp=1510210523&nonce=2414550015&signature=30b9eeb6b1134d0a53623375c48ca734c41facb5&echostr=6863786913073725439
我眼睛看著驗證信息沒錯,輸出的echostr跟get提交來的一模一樣,但是還是會出錯。忍無可忍,一直無法搞定。
自己做開發也算基本上路了,還在這種坑吃虧,有點不服,最后查看日志,一點點搞定。
以下是我解決問題的辦法:
1.網上有人說是header要設置utf-8,我也設置了,不行;
2.有人說可能是沒有日志寫入權限,導致信息能正常,但是頁面代碼不正常,打開console,發現,網頁頭顯示500,麻蛋,這是服務器錯誤啊。
估計是騰訊一旦判斷到你的500代碼,就不繼續了。
最后檢查,發現是自己的服務器日志目錄權限不足,無法寫入日志!
就是這個原因,導致我浪費很多小時。
最后,我把驗證微信公眾號的token分享給各位兄弟,希望大家不要踩坑。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$token='請填寫你的公眾號token'; $timestamp = $_GET[‘timestamp']; $nonce = $_GET[‘nonce']; $signature = $_GET[‘signature']; $array = array($timestamp,$nonce,$token); sort($array); //2.將排序后的三個參數拼接后用sha1加密 $tmpstr = implode(”,$array); $tmpstr = sha1($tmpstr); //3. 將加密后的字符串與 signature 進行對比, 判斷該請求是否來自微信 if($tmpstr == $signature) { echo $_GET[‘echostr']; } return false; |
另外,提醒各位兄弟,配置信息再微信測試號配置會好些,即便錯了也不用每次都掃描二維碼,累死人。
微信測試號地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
以上這篇Thinkphp5 微信公眾號token驗證不成功的原因及解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/jianqingwang/archive/2017/11/11/7820406.html