ホームページ  >  記事  >  バックエンド開発  >  WeChatサブスクリプションアカウント開発のトークン検証後、自動返信メッセージ機能は完了しましたが、メッセージは返されず、トークンが自動的に返信されます_PHPチュートリアル

WeChatサブスクリプションアカウント開発のトークン検証後、自動返信メッセージ機能は完了しましたが、メッセージは返されず、トークンが自動的に返信されます_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:03:091306ブラウズ

WeChatサブスクリプションアカウント開発のトークン検証後、メッセージを送信しても応答がありません

トークン後は多くの人が同じようになると思います。確認のために、サブスクリプション アカウントにメッセージを送信しましたが、メッセージが返されません。

以下は、ハードなデバッグの後に得られた解決策です:

まず、トークンの検証:

私が書いたトークンは常に検証に失敗しました。長い間探しましたが、バグは見つかりませんでした。仕方がないので公式のサンプルコードを使用しました。そして、サンプルコードのデバッグを通じて、血を吐くようなバグを発見しました(バグではありません):

トークンの検証には文字エンコード形式が必要なようです! ! ! !

公式サンプルコードはサーバーに直接アップロードされ、トークンは直接渡されます!

公式サンプルコードをUTF-8形式に変更して上書きアップロードしたところ、トークンに失敗しました! 失敗しました!失敗!

その後、作成した内容を ANSI 形式に変更しましたが、トークンは依然として失敗しました。酔った、酔った!その場合は、公式のサンプルコードを使用する必要があります。ここで、トークンは1回限りのハンドシェイク検証であり、一度検証した後は不要になると言わせてください。

さて、本題に戻りますが、話が逸れたようです...orz

トークン検証後、公式サンプルコードを直接使ってサブスクリプションアカウントを簡単にテストした結果…送信されたメッセージは水が注がれたようなもので、何も返されませんでした…orz

私はさまざまな方法でバグを検索し、さまざまなグループに質問し、さまざまな方法で検索しました...このブロガーの努力の後、ついに問題を発見しました(これは私が自分で開発したものを指しており、すべてが含まれているわけではありません、別のバグがある場合は、ご連絡ください):

1. 最も見落とされやすいバグは、公式サンプル コードが記述された responseMsg() 関数をまったく呼び出していないことです。

2. 前のトークン コード (コード $wechatObj->valid();) の行をコメント アウトします。トークン検証コードには echo $echostr が含まれるため、responseMsg() 関数 の echo $resultStr; (行 56) は紛らわしい XML 形式となり、 WeChatサーバー(xml形式、json形式しか認識できないようです)。 (トークン検証はハンドシェイク検証です。開発者を検証した後は必要なくなります。きれいなコードからは消えてくださいorz...)

3. 最も嫌なバグは、文字エンコーディングの問題です。 orz...xml には UTF-8 エンコーディングが必要なので、サンプル コードを UTF-8 エンコーディングに戻してください。このバグは私を崩壊させます! ! !

以下は私が修正したコードです。正常に実行でき、バグはありません。必要に応じて参照してください。 リーリー

http://www.bkjia.com/PHPjc/1082307.html

本当http://www.bkjia.com/PHPjc/1082307.html技術記事 WeChat サブスクリプション アカウント開発のトークン検証が完了すると、メッセージが返されなくなります。トークン検証後にメッセージが送信されると、私と同じように感じる人が多いと思います。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。