2012-02-20 4 views
16

私はアプリ内トランザクションを復元し、元のトランザクションからトランザクション識別子を取得することができましたが、トランザクションで購入された商品をどのように特定するのですか? 以前に購入したアプリ内アイテムの商品IDを取得することはできますか?復元されたトランザクションから製品識別子を取得するにはどうすればよいですか?

答えて

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

ありがとうございます!それはまさに私が必要としたものでした。 –

+0

あなたのソリューションを使用して、現在キューで処理中のSKPaymentTransactionに関連付けられたproductIdentifier(つまり、「transaction.payment.productIdentifier」)を特定しました。ありがとうございました –

4

SWIFT VERSIONのように行うことができます..あなたはすでに、ユーザーがそれを購入購入したアイテムをチェックしたいわけ場合:

デリゲートに得れば

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