2016-06-10 172 views
0

IOS應用程式內購買如何知道這個產品已經購買(我可以nsuserdefault檢查這個地方,但如何從手機中取出應用程序後,知道再重新安裝應用程序)IOS應用程式內購買收據

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1

+0

你必須提供一個恢復的購買按鈕。這將允許用戶恢復非消費型和訂購型購買。 – Paulw11

+0

通過[this](https://www.raywenderlich.com/36270/in-app-purchases-non-renewing-subscription-tutorial) –

+0

@ Paulw11謝謝朋友,我用它,但我怎麼知道這個購買相同應用程序ID(或由此特定電話購買) – saurabh

回答

1

您可以收到以這種方式(從 Read the Receipt Data):

// Load the receipt from the app bundle. 
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL]; 
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL]; 
if (!receipt) { /* No local receipt -- handle the error. */ } 

如果用戶刪除的應用程序,你必須提供一種方法來恢復購買。

你可以做這樣的事情:

- (IBAction)restorePurchase:(id)sender{ 
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
} 

// Then this is called 
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { 

    NSMutableArray *purchasedItemIDs = [[NSMutableArray alloc] init]; 

    for (SKPaymentTransaction *transaction in queue.transactions) { 
     NSString *productID = transaction.payment.productIdentifier; 
     [purchasedItemIDs addObject:productID]; 
     NSLog(@"product id is %@", productID); 
    } 
}