Thinkphp5 微信公衆號token驗證不成功的緣由

最近要啓動微信項目,上個月就開始瞭解微信的開發,這個月要啓動項目,配置微信公衆號信息一直失敗。爲此,我甚至手工寫了微信提交過來的記錄,如:php

&timestamp=1510210523&nonce=2414550015&signature=30b9eeb6b1134d0a53623375c48ca734c41facb5&echostr=6863786913073725439服務器

我眼睛看着驗證信息沒錯,輸出的echostr跟get提交來的如出一轍,可是仍是會出錯。忍無可忍,一直沒法搞定。微信

 

本身作開發也算基本上路了,還在這種坑吃虧,有點不服,最後查看日誌,一點點搞定。測試

如下是我解決問題的辦法:ui

1.網上有人說是header要設置utf-8,我也設置了,不行;加密

2.有人說多是沒有日誌寫入權限,致使信息能正常,可是頁面代碼不正常,打開console,發現,網頁頭顯示500,麻蛋,這是服務器錯誤啊。debug

估計是騰訊一旦判斷到你的500代碼,就不繼續了。日誌

最後檢查,發現是本身的服務器日誌目錄權限不足,沒法寫入日誌!排序

就是這個緣由,致使我浪費不少小時。token

最後,我把驗證微信公衆號的token分享給各位兄弟,但願你們不要踩坑。

$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驗證不成功的緣由

相關文章
相關標籤/搜索