10

iOS 应用内购买:何时以及为什么会SKPaymentTransactionStateRestored作为交易状态返回?

它是否与定期订阅计划有关?

4

2 回答 2

2

当您SKPaymentTransactionStateRestored通过向.SKPaymentTransactionStatePurchasedrestoreCompletedTransactionsSKPaymentQueue

于 2011-12-01T15:11:42.413 回答
1

一般规则是处理两个回调:购买和恢复购买。

- (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];
}
于 2011-12-17T05:59:45.237 回答