以下のような回答をいただいています。
{"status":21002, "exception":"java.lang.NullPointerException"}
Base64 のみを使用してレシートをエンコードしています。
サンドボックスでテストしています。
何が問題になりますか?誰でも私を助けることができますか?
以下のような回答をいただいています。
{"status":21002, "exception":"java.lang.NullPointerException"}
Base64 のみを使用してレシートをエンコードしています。
サンドボックスでテストしています。
何が問題になりますか?誰でも私を助けることができますか?
VIPは、21002が、Urusアプリなどのルート化されたiTunesハックソフトウェアを介して開始されたトランザクションを検証しようとしたときに返されるメッセージでもあることに注意してください。
すべてのトランザクションをサーバー側で検証するため、デバイスに依存せず、21002応答を取得するトランザクションはすべて実際の支払いではありません。
返されたトランザクションIDを確認する簡単な方法Urusはcom.urus.iap.XXXXXXX(xは乱数)を提供します。他の方法では、パック名を完了したトランザクションIDとして返すことが含まれます。これらはすべて、取得したIDとは大きく異なります。さまざまなiTunesサーバーから。
(ハッキングされていない限り)操作できない、制御、テスト、証明できる環境でサーバー側を検証することを、これ以上お勧めすることはできません。これがオプションでない場合は、21002応答で支払いを行わないでください。
Java環境での検証では、21002のjson応答は次のようになります。json:{"status":21002、 "exception": "java.lang.ClassCastException"}
こんにちは、私は解決策を得ました
キー「receipt-data」を使用してjsonとしてbase 64にエンコードした後、レシートデータを送信するだけです
リクエストに投稿本文が含まれておらず、空のリクエストしか送信されていないことが判明するまでは、同じ問題がありました。
2日間壁に頭をぶつけた後、私にとって機能する唯一のオプション: サンドボックスでのテスト
Apple によるこのアドバイス「重要: 設定アプリケーションでテスト アカウントでサインインしないでください。」に注意してください。
ベース 64 にエンコードする前に、テスト デバイスで「テスト」アップル ストア アカウントからサインアウトしていることを確認してください。