私はアプリ内決済を使用してゲーム内の消耗品を販売しています。支払いが成功した後、支払い領収書をバックエンドに転送します。バックエンドは、iTunes支払いバックエンドで領収書を検証します。これは、サンドボックス環境で問題なく機能します。
Appleの人たちに承認され、App Storeで公開できるように、アプリを送信しました。もちろん、バックエンドが次の本番環境で支払い領収書を検証することを確認しました。 iTunesバックエンド。Appleの人がアプリを本番モードでテストすることを期待していました。しかし、アプリは拒否されました。理由として、消耗品の購入が機能しないと言われました(レシートが無効なため、バックエンドによって拒否されました。ログを確認したところ、購入が3回試行されたことがわかりました。使用されたレシートをデコードすると、これらはすべて「environment」=「Sandbox」であることがわかりました。
これは、Appleが送信されたアプリをサンドボックスモードでテストすることを意味しますか?それはクレイジーです!本番環境でサンドボックスの支払いを許可することになっていますか?これについて何か事実はありますか?
トーマス、あなたは間違いなくAppleのFAQアプリ内購入について: https://developer.Apple.com/library/content/technotes/tn2413/_index.html#//Apple_ref/doc/uid/DTS40016228-CH1-RECEIPTURL
必ず最初に本番URLで領収書を確認してください。 21007ステータスコードを受け取った場合は、サンドボックスURLで確認してください。このアプローチに従うことで、アプリケーションがサンドボックスでテストまたはレビューされている間、またはAppStoreで公開されているときにURLを切り替える必要がなくなります。
そうです、彼らはちょっとクレイジーです。しかし、私たちはそれを知っていましたね。
@JanPの答えは正しいです。簡単なYES/NOの答えを探している場合、FAQからの具体的な答えは;
アプリケーションのレビュー中は、サンドボックスを使用する必要があります。
(15)領収書を確認するためにどのURLを使用する必要がありますか?サンドボックスURLを使用します https://sandbox.iTunes.Apple.com/verifyReceipt サンドボックスでアプリケーションをテストしている間およびアプリケーションをレビューしている間