IAP还原自定义事务

时间:2013-02-19 10:57:25

标签: ios in-app-purchase

我是iOS的新用户,我想知道是否有可能指定哪个已完成的交易用户想要恢复?现在我正在使用:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

我找不到任何可以确切知道要恢复的交易。

谢谢!

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。添加

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

并添加委托函数paymentQueueRestoreCompletedTransactionsFinished。在此功能中,您可以添加特定的产品ID。

- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init];

    //NSLog(@"received restored transactions: %i", queue.transactions.count);
    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSString *productID = transaction.payment.productIdentifier;
        [purchasedItemIDs addObject:productID];

        if([productID isEqualToString:IN_APP_KEY_UNLOCK_SHIP_2])
        {
            //NSError *error = nil;
            [[NSNotificationCenter defaultCenter] postNotificationName:@"ship2PurchaseRestored" object:nil];
        }
    }

}