thinkphp token失敗的解決方法:1、開啟微信小程式token校驗程式碼;2、在輸出「echostr」前,清空快取區,也就是在echo前放置「ob_clean();」程式碼即可解決token失敗問題。
本教學操作環境:Windows7系統、ThinkPHP5版、Dell G3電腦。
thinkphp token失敗怎麼辦?
解決ThinkPHP微信小程式token校驗失敗
#今天在做微信小程式的學習,申請了一個小程式帳號,申請步驟:微信小程式開發-註冊帳號。
在進行開發配置過程中,需要填寫伺服器信息,校驗token,但是一直是校驗失敗的狀態,看了他人的處理方式,總結出來了辦法,分享出來。
解決方法:在輸出「echostr」前,清空快取區,即在echo 前放置「ob_clean();」程式碼。
官方解釋:ob_clean() 此函數用來丟棄輸出緩衝區中的內容;
校驗程式碼如下:
/** * 微信小程序token校验 * @return bool */ public function wxtoken() { $signature = input('get.signature'); $timestamp = input('get.timestamp'); $nonce = input('get.nonce'); $token = '1234567'; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if($tmpStr == $signature){ ob_clean(); echo input('get.echostr'); }else{ return false; } }
微信官方對token校驗的說明為:開發者透過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此GET請求來自微信伺服器,請原樣回傳echostr參數內容,則存取生效,成為開發者成功,否則存取失敗。
加密/校驗流程如下:
1、將token、timestamp、nonce三個參數進行字典序排序
2、三個參數字串拼接成一個字串進行sha1加密
3、開發者獲得加密後的字串可與signature對比,標識該請求來自微信;
推薦學習:《thinkPHP影片教程》
以上是thinkphp token失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!