PHP パブリック アカウントのトークン検証エラーの解決策
WeChat パブリック アカウントの開発プロセスでは、トークン検証エラーが頻繁に発生します。通常、この状況は、トークンの構成が間違っているか、WeChat サーバーがトークンにアクセスできないことが原因です。サーバ。この記事では、いくつかの一般的なトークン検証の失敗とその解決策を紹介します。
- トークン構成エラー
トークンを設定するときは、コードにトークンを書き込み、WeChat パブリック プラットフォーム上で構成する必要があります。入力したトークンがコード内のトークンと一致しない場合、トークンの検証は失敗します。
トークン構成エラーの解決策:
まず、パブリック プラットフォームで入力したトークンがコード内のトークンと同じかどうかを確認する必要があります。異なる場合は、同じトークンに変更する必要があります。
2 番目に、コード内のトークンが正しく設定されているかどうかを確認する必要があります。以下に示すように、コード内のトークンを出力することで確認できます。
define("TOKEN", "XXXXXXXXXXXXXX"); echo TOKEN;
出力された結果は、パブリック プラットフォームで設定されたトークンと同じであるはずです。異なる場合は、コード内のトークンを変更する必要があります。
- サーバー構成エラー
トークン検証を実行すると、WeChat サーバーはサーバーへの HTTP GET リクエストを開始します。リクエストには、WeChat パブリック上にある情報が含まれていますトークン、タイムスタンプ、ノンスの 3 つのパラメータを入力します。私たちのサーバーは、これら 3 つのパラメータに基づいて暗号化処理を実行し、WeChat サーバーに返す必要があります。
WeChat サーバーからサーバーにアクセスできない場合、またはサーバーの応答が正しくない場合、トークンの検証は失敗します。
サーバー構成エラーの解決策:
まず、サーバーがポート 80 を開いていて、ファイアウォールが WeChat サーバーへのアクセスをブロックしていないかどうかを確認する必要があります。
2 番目に、サーバー側のコードが正しく設定されているかどうかを確認する必要があります。以下に示すように、コード内のサーバーから返されたデータを出力して確認できます。
$echostr = $_GET["echostr"]; echo $echostr;
サーバーがデータを正しく返さない場合は、コードにエラーやロジックの問題があるかどうかを確認する必要があります。コード。
- セーフ モードでのトークン検証エラー
公式アカウントの設定でセーフ モードがオンになっている場合、トークンに対して特別な処理を実行する必要があります。セーフ モードでは、WeChat サーバーはサーバーへの HTTP POST リクエストを開始します。リクエストには、WeChat パブリック プラットフォームで入力した 4 つのパラメーター (Token、timestamp、nonce、msg_signature) が含まれます。
セーフ モードでのトークン検証エラーの解決策:
まず、サーバーが HTTP POST リクエストを正常に処理できることを確認する必要があります。次に、トークンに対して特別な処理を実行する必要があります。コード例は次のとおりです:
$token = "XXXXXXXXXXXXXX"; // Token和公众平台上设置一致 $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $msg_signature = $_GET["msg_signature"]; $encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == "aes")) ? "aes" : "raw"; // 兼容明文模式与安全模式 if ($msg_signature) { $signature = $_GET["signature"]; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr = $encrypt_type == 'aes' ? $tmpStr . $_GET["encrypted"] : $tmpStr; $signatureLocal = sha1($tmpStr); if ($signature == $signatureLocal) { if ($encrypt_type == 'aes') { // 对密文进行解密 } $echostr = $_GET["echostr"]; echo $echostr; } }
- トークン タイムアウト
トークンには有効期限があります。公式アカウントの場合トークンの有効期限を超えると、トークンが無効になり、トークンの検証が失敗します。
トークン タイムアウトの解決策:
コード内でトークンの有効期限を設定できます。たとえば、7200 秒 (2 時間) に設定します。コード例は次のとおりです:
define("TOKEN", "XXXXXXXXXXXXXX"); define("EXPIRE_TIME", 7200); $timestamp = $_GET['timestamp']; $nonce = $_GET['nonce']; $signature = $_GET['signature']; if (time() - $timestamp > EXPIRE_TIME) { die('Token expired'); } $tmpArr = array(TOKEN, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if ($tmpStr == $signature) { $echostr = $_GET['echostr']; echo $echostr; }
以上、PHP公式アカウントのトークン検証に失敗した場合の対処法をまとめてみましたので、皆様のお役に立てれば幸いです。
以上がPHP公式アカウントのトークン検証が失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









