ホームページ  >  記事  >  バックエンド開発  >  WeChat Pay は一部の Android デバイスでは openid を取得できませんが、IOS デバイスでは取得できます。

WeChat Pay は一部の Android デバイスでは openid を取得できませんが、IOS デバイスでは取得できます。

WBOY
WBOYオリジナル
2016-07-06 13:52:581639ブラウズ

IOS デバイスでの WeChat 支払いには問題ありませんが、Android デバイスでは openid を取得できないため、WeChat から返されるエラー コードは 40029 です

返信内容:

IOS デバイスでの WeChat 支払いには問題ありませんが、Android デバイスでは openid を取得できないため、WeChat から返されるエラー コードは 40029 です

コードが無効になったのは、WeChat サーバーがコードを複数回送信したためです (コードは 1 回しか使用できません)。実行中にログの書き込み操作を追加すると、確かに 2 回実行されたことがわかります。複数のテストに合格した後の問題は、ユーザー情報の取得時にオブジェクトに変換された json データが試行せずに失敗 (つまり、例外) し、WeChat サービスが同じコードを再度送信する原因となり、すでに使用されているコードです。このコードでは、2 番目のステップで access_token を取得するときに 40029 問題が発生します。 (追記:以前にも一度もらったことがあります。)

解決策: 全体として try catch を追加して、問題の原因を見つけて解決します。

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