私のアプリには、自動更新サブスクリプションのサーバー側のレシート検証があります。
特に、アプリを再起動するたびに、レシートがまだ有効かどうかを確認する必要があります。
iOS7 では、レシートを取得できるコード行だけで、かなり簡単に思えます。
// Load the receipt from the app bundle.
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if (!receipt) { /* No local receipt -- handle the error. */ }
/* ... Send the receipt data to your server ... */
iOS6 では にフォールバックするようtransactionReceipt
です。取得するには、2 つのオプションがあります。
- 購入後保存
- 復元購入として再度依頼する
ここに問題があります。最初のケースでは、領収書はサブスクリプション期間のみ有効であり、どこに保存するのが正しいと思いますか?.
2 番目のケースでは、購入を復元すると App Store のポップアップ メッセージが表示され、スタートアップのたびにそれを尋ねるのはかなり退屈です。
誰かが正しい道を教えてくれますか?