2012-02-20 41 views
16

Tôi đã quản lý để khôi phục các giao dịch trong ứng dụng và nhận mã nhận dạng giao dịch từ giao dịch ban đầu, nhưng làm cách nào để xác định sản phẩm đã được mua trong giao dịch? Có thể nhận mã nhận diện sản phẩm cho sản phẩm trong ứng dụng đã mua trước đây không?Tôi làm cách nào để nhận mã nhận diện sản phẩm từ một giao dịch được khôi phục?

Trả lời

50

nếu bạn có nghĩa là bạn muốn kiểm tra các mặt hàng mua mà đã dùng mua nó .. bạn có thể làm như

- (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

Cảm ơn bạn! Đó là chính xác những gì tôi cần. –

+0

Tôi đã sử dụng giải pháp của bạn để xác định productIdentifier (tức là 'transaction.payment.productIdentifier') được liên kết với SKPaymentTransaction hiện đang được xử lý trong hàng đợi. Cảm ơn bạn –

4

VERSION SWIFT này:

Khi bạn nhận được các đại biểu

func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) { 
    var productIds = [String]() 
    for transcation in queue.transactions{ 
     if let productID = transcation.payment?.productIdentifier{ 
     productIds.append(productID) 
     } 
    } 
Các vấn đề liên quan