TP5微信開發地址驗證中的配置失敗或者token驗證失敗的解決辦法
阿新 • • 發佈:2019-02-05
在使用TP5做微信開發時大家一定遇到過配置失敗或者token驗證失敗的情況,而且使用日誌列印引數進行簽名演算法驗證都是真確的。
這個問題讓我苦惱了好久。最終發現,在我們驗證簽名是輸出了隨機字串 echo $echoStr;時如果沒有關閉trace就會出現如下的輸出
這個就是罪魁禍首,萬一你不小心沒有改配置那就會輸出trace分析頁面的html,而不僅僅是echoStr,所以微信伺服器接收到訊息後會報錯,而且是抓狂的一直報錯。
解決辦法:
關閉 trace
另外附上tp5驗證url有效性的程式碼。
$data = Request::instance()->get(); $signature = $data['signature']; $timestamp = $data['timestamp']; $nonce = $data['nonce']; $echostr = $data['echostr']; /** * 計算微信簽名 */ $token = Config::get('wechat_config.token'); //將引數組成一維陣列 $signeSeed = [$token, $timestamp, $nonce]; //對引數字典序排序 sort($signeSeed, SORT_STRING); //拼接成字串 $signeStr = implode($signeSeed); //加密字串成簽名 $signeHash = sha1($signeStr); if ($signeHash == $signature) { echo $echostr; }else{ return false; }