ホームページ  >  記事  >  バックエンド開発  >  Thinkphp5でWeChatパブリックアカウントトークンの検証に失敗する原因と解決策について

Thinkphp5でWeChatパブリックアカウントトークンの検証に失敗する原因と解決策について

不言
不言オリジナル
2018-06-08 14:26:532091ブラウズ

以下は、Thinkphp5 WeChat パブリック アカウントのトークン検証が失敗する理由と解決策に関する記事です。内容がとても良かったので、参考としてシェアさせていただきます。

最近 WeChat プロジェクトを開始しました。先月から WeChat の開発を理解し始めましたが、今月プロジェクトを開始しますが、WeChat 公式アカウント情報の設定に失敗しています。このため、WeChat によって送信された次のようなレコードも手動で作成しました。それを見ることで、出力 echostr get で送信されたものとまったく同じですが、それでもエラーが発生します。もう我慢できず、やり遂げることができませんでした。

私はまだこの落とし穴に悩まされており、最終的にはログを確認して少しずつ解決しました。

この問題に対する私の解決策は次のとおりです:

1. インターネット上の一部の人々は、ヘッダーを utf に設定する必要があると言っています。 -8 を設定しました。いいえ、2 を設定しました。ログの書き込み権限がないため、情報は正常ですが、ページのコードは正常ではないという人もいます。コンソールを開くと、ページ ヘッダーに 500 が表示されています。これはサーバー エラーです。

Tencent が 500 コードを決定すると、それは続行されなくなると推定されます。

最終チェックの結果、サーバーのログ ディレクトリにログを書き込むための十分な権限がないことがわかりました。

これが私が何時間も無駄にした理由です。 最後に、皆さんが罠に陥らないことを祈りながら、WeChat 公式アカウントを認証するためのトークンを兄弟全員に共有します。

$token='请填写你的公众号token';

$timestamp = $_GET[‘timestamp'];
$nonce = $_GET[‘nonce'];
$signature = $_GET[‘signature'];
$array = array($timestamp,$nonce,$token);
sort($array);

//2.将排序后的三个参数拼接后用sha1加密
$tmpstr = implode(”,$array);
$tmpstr = sha1($tmpstr);

//3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信
if($tmpstr == $signature)
{
echo $_GET[‘echostr'];
}
return false;

さらに、兄弟の皆さんには、たとえ間違っていたとしても、毎回 QR コードをスキャンする必要はないので、WeChat テスト アカウントに設定情報を設定することをお勧めします。 、疲れます。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

ThinkPHP コントローラーの分析について

ThinkPHP ウォーターマークおよびウォーターマーク位置の設定に関する分析

以上がThinkphp5でWeChatパブリックアカウントトークンの検証に失敗する原因と解決策についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。