2013-02-19 55 views
3

我是新进iOS,我不知道是否有任何可能性来指定哪些完成的交易用户想要恢复?现在我正在使用:IAP恢复自定义交易

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

而我找不到任何东西来确切说明我要恢复哪个事务。

谢谢!

回答

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]; 
     } 
    } 

} 
+0

谢谢你的回答,但它没有帮助。它甚至没有进入这个代码。 – dargod 2013-02-19 11:19:21

+0

行得通,加\t [[SKPaymentQueue defaultQueue] addTransactionObserver:self];更新了我的答案.. – Guru 2013-02-19 11:20:56

+0

仍然一样。之前我刚刚观察过,在restoreCompletedTransactions之后。无论如何,我已经改变了顺序,但没有区别。 – dargod 2013-02-19 11:27:45