3

上記の質問は、Apple のテクニカル ノート ( QNo: 15 ) の FAQ で見つけました。彼らは次のような答えを出しました。

サンドボックスでアプリケーションをテストしている間、およびアプリケーションの審査中は、サンドボックスの URL https://sandbox.itunes.apple.com/verifyReceiptを使用してください。

アプリケーションが App Store で公開されたら、製品 URL http://buy.itunes.apple.com/verifyReceiptを使用します。

ただし、アプリ内購入プログラミング ガイド ( App Store セクションで領収書を確認する) では。Apple は次のような URL を提供しています。

HTTP POST リクエストを使用して、JSON オブジェクトを App Store に投稿します。ストアの URL はhttps://buy.itunes.apple.com/verifyReceiptです。

最初の URL はアプリ内購入を確認するためのライブ アカウントに http を使用し、2 番目の URL は https を使用していることに注意してください。どちらを使用する必要がありますか? サーバーが Apple にレシートを送信するときに、サーバーが正しい応答を得ていないため、アプリが拒否されました。領収書の確認にhttps://buy.itunes.apple.com/verifyReceiptを使用しています。

4

1 に答える 1

6

最善の方法は、最初に本番サーバーで確認することです。21007 コードが返された場合は、サンドボックス サーバーをもう一度呼び出す必要があります。これが必要なのは、送信プロセス中に、ライブ サーバーとサンドボックス サーバーのどちらを使用するかが常にわからないためです。両方で動作する必要があります。

安全な方法で領収書を検証するソース コードを次に示します (昨年のアプリ ストアのハッキングに対抗します)。上記のコードをこのプロジェクトに追加しました。これは、最初に運用サーバーでチェックし、次にサンドボックス サーバーにフォールバックします。

https://github.com/evands/iap_validation

編集: iOS 7 では上記のコードをもう使用しません。いくつか問題があると思います!

于 2013-01-25T09:07:17.333 に答える