ホームページ >PHPフレームワーク >ThinkPHP >thinkphp トークンが失敗した場合の対処方法
thinkphp トークンの失敗に対する解決策: 1. WeChat アプレットのトークン検証コードを開きます; 2. 「echostr」を出力する前にキャッシュ領域をクリアします、つまり、echo の前に「ob_clean();」コードを配置します。トークンの失敗の問題を解決します。
このチュートリアルの動作環境: Windows 7 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。
thinkphp トークンが失敗した場合はどうすればよいですか?
ThinkPHP WeChat ミニ プログラムのトークン検証エラーの問題を解決する
# 今日、私は WeChat ミニ プログラムを勉強し、ミニ プログラム アカウントを申請しました。手順は次のとおりです: WeChat Mini プログラムの開発 - アカウントを登録します。
開発や設定のプロセス中にサーバー情報を入力してトークンを検証する必要がありますが、検証は常に失敗するため、他の人の対処方法を読んだ後、方法をまとめて共有しました。
解決策: "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; } }
WeChat 公式検証トークンの説明: 開発者は署名をチェックすることでリクエストを検証します (検証方法は以下にあります)。この GET リクエストが WeChat サーバーからのものであることが確認された場合は、echostr パラメーターの内容をそのまま返してください。アクセスが有効になり、開発者になることができます。そうでない場合は、アクセスは失敗します。
暗号化/検証プロセスは次のとおりです:
1. 3 つのパラメーターのトークン、タイムスタンプ、ノンスを辞書順に並べ替えます
2. 3 つのパラメーター文字列を次のように結合します文字列は sha1
で暗号化されます 3. 開発者が取得した暗号化された文字列を署名と比較して、リクエストが WeChat からのものであることを識別できます;
推奨される学習: "thinkPHPビデオチュートリアル >>
以上がthinkphp トークンが失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。