Auto-renewable subscription を有効期間中に再度購入すると購入が失敗する
有効期間が切れていない subscription を購入する SKPayment
を発行すると、対応する SKPaymentTransaction
の -transactionState
が最終的に SKPaymentTransactionStateFailed
になる。
このとき theTransaction.error.code == 2
となる。
この挙動は10.9で変更され、有効期間中に再度購入しても正常に購入が完了する。 -transactionState
は最終的に SKPaymentTransactionStateCompleted
になる。
新規に取得したレシートにはそれ以前のトランザクションが記録されていない
レシートがない状態(おもに開発中でビルド直後の状態)から新規に取得したレシートには、それ以前に購入された IAP のトランザクションが記録されていない。 -[SKPaymentQueue restoreCompletedTransactions]
を呼ぶと古いトランザクションも取得できる。
10.9では、新規に取得したレシートにも古いトランザクションが記録されている。