微信開發 token驗證失敗 200302 報錯 err_msg: "verify token fail" ret: 200302

 

微信接入事件回調的時候,用的是微信官方的代碼,但是就是無法通過驗證,實在是想罵罵騰訊寫文檔的人

我的代碼如下:

//回調鑑權
    public function check_signature()
    {
        $param = $this->request->get();
        $signature = $param["signature"];
        $timestamp = $param["timestamp"];
        $nonce = $param["nonce"];
        $token = config('wx_trade_plugin')['token'];
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);
        $param['tmpStr'] = $tmpStr;
        if ($tmpStr == $signature ) {
            echo $param["echostr"]);
        } else {
            echo 'error';
        }
    }

思來想去還是覺得沒毛病,於是我自己用postman測試,也看不出任何問題

終於在試了很多次之後,我將代碼改成這樣子,神奇的通過了,心中萬馬奔騰!!!

//回調鑑權
    public function check_signature()
    {
        $param = $this->request->get();
        $signature = $param["signature"];
        $timestamp = $param["timestamp"];
        $nonce = $param["nonce"];
        $token = config('wx_trade_plugin')['token'];
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);
        $param['tmpStr'] = $tmpStr;
        //重點
        header("Content-type: text/html; charset=utf-8");
        if ($tmpStr == $signature ) {
        	//重點
            echo htmlspecialchars($param["echostr"]);
        } else {
            echo 'error';
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章