1. 程式人生 > >TP5微信開發地址驗證中的配置失敗或者token驗證失敗的解決辦法

TP5微信開發地址驗證中的配置失敗或者token驗證失敗的解決辦法

在使用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;
        }