2012-02-20 81 views

回答

50

,如果你的意思是你要检查所购买的物品已经用户买..是的,你可以像这样

- (void) checkPurchasedItems 
{ 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
}//You Call This Function 

//Then this delegate Function Will be fired 
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
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]; 
} 
} 
+0

谢谢!那正是我需要的。 – 2012-02-20 11:56:04

+0

我使用您的解决方案来确定与队列中当前正在处理的SKPaymentTransaction关联的productIdentifier(即'transaction.payment.productIdentifier')。谢谢 – 2015-10-28 21:20:32

4

SWIFT版本:

一旦你获得了代表

func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) { 
    var productIds = [String]() 
    for transcation in queue.transactions{ 
     if let productID = transcation.payment?.productIdentifier{ 
     productIds.append(productID) 
     } 
    }