iOS アプリ内購入: いつ、なぜSKPaymentTransactionStateRestored
トランザクションのステータスとして返送されるのですか?
定期購読プランに関連していますか?
iOS アプリ内購入: いつ、なぜSKPaymentTransactionStateRestored
トランザクションのステータスとして返送されるのですか?
定期購読プランに関連していますか?
にメッセージを送信してユーザーの購入を復元しているときSKPaymentTransactionStateRestored
に、トランザクションではなくトランザクションを取得します。SKPaymentTransactionStatePurchased
restoreCompletedTransactions
SKPaymentQueue
一般的なルールは、購入と購入の復元の両方のコールバックを処理することです。
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
default:
break;
}
}
}
- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
[self recordTransaction: transaction content:transaction.payment.productIdentifier];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}
- (void) restoreTransaction: (SKPaymentTransaction *)transaction
{
[self recordTransaction: transaction content:transaction.originalTransaction.payment.productIdentifier];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}