ホームページ >バックエンド開発 >PHPチュートリアル >WeChat Pay は一部の Android デバイスでは openid を取得できませんが、IOS デバイスでは取得できます。
IOS デバイスでの WeChat 支払いには問題ありませんが、Android デバイスでは openid を取得できないため、WeChat から返されるエラー コードは 40029 です
。IOS デバイスでの WeChat 支払いには問題ありませんが、Android デバイスでは openid を取得できないため、WeChat から返されるエラー コードは 40029 です
。
コードが無効になったのは、WeChat サーバーがコードを複数回送信したためです (コードは 1 回しか使用できません)。実行中にログの書き込み操作を追加すると、確かに 2 回実行されたことがわかります。複数のテストに合格した後の問題は、ユーザー情報の取得時にオブジェクトに変換された json データが試行せずに失敗 (つまり、例外) し、WeChat サービスが同じコードを再度送信する原因となり、すでに使用されているコードです。このコードでは、2 番目のステップで access_token を取得するときに 40029 問題が発生します。 (追記:以前にも一度もらったことがあります。)
解決策: 全体として try catch を追加して、問題の原因を見つけて解決します。