thinkphp Token失敗的解決辦法:1、打開微信小程序token校驗代碼;2、在輸出“echostr”前,清空緩存區,也就是在echo前放置“ob_clean();”代碼即可解決token失敗問題。
本教程操作環境:Windows7系統、ThinkPHP5版、Dell G3電腦。
thinkphp token失敗怎么辦?
解決ThinkPHP微信小程序token校驗失敗
今天在做微信小程序的學習,申請了一個小程序賬號,申請步驟:微信小程序開發-注冊賬號。
立即學習“PHP免費學習筆記(深入)”;
在進行開發配置過程中,需要填寫服務器信息,校驗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視頻教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦