ホームページ  >  記事  >  php教程  >  PHP 開発公式アカウントのトークン検証に失敗したことが原因の 1 つです。

PHP 開発公式アカウントのトークン検証に失敗したことが原因の 1 つです。

WBOY
WBOYオリジナル
2016-09-12 17:27:33962ブラウズ

数日間断続的に作業し、最終的に問題を見つけるまでに 3 時間を費やしました。

「トークン検証が失敗した」理由は、他のネット民がほぼ書き尽くしているが、私がインターネット上で遭遇したものを見ていないので、ここに記録しておきます。

失敗の理由はエンコーディングの問題です

プロジェクトで開発していたので、ビジネスロジックから技術ロジック、ドメイン名、登録、ネットワーク、コーディングの順に確認していきました。

後で、プロジェクトの入り口にそのようなコードがあることがわかりました。このコードの前では echo $_GET['echostr'] が渡せますが、このコードの後に​​は echo $ が渡されます。 _GET[ 'echostr']、失敗します。

data.config.phpファイルの元のエンコード形式は(notepad++で開く)です

フォーマットをに調整すると問題は解決しました。

実際、utf-8 には基本的に BOM と非 BOM の違いはありません。送信中に誤解が生じることは絶対にありませんが、2 つの形式があることはどうしようもありません。 BOMとは何かについては別の記事で詳しく説明します。

ここでは、さまざまなエンコーディングの 16 進数の比較を示します。

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