2016-06-10 4 views
0

ios inapp Kauf, wie Sie dieses Produkt wissen bereits gekauft worden (ich kann dies lokal durch nsuserdefault überprüfen aber wie nach Entfernen App von Telefon wissen, dann neu installieren app)ios inapp Kaufbeleg

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

+0

Sie müssen eine Schaltfläche Einkäufe wiederherstellen bieten. Dies ermöglicht dem Benutzer, nicht verbrauchbare und Abonnement-Käufe wiederherzustellen. – Paulw11

+0

Gehen Sie durch [diese] (https://www.raywenderlich.com/36270/in-app-churches-non-renewing-subscription-tutorial) –

+0

@ Paulw11 danke Freund, ich habe es verwendet, aber, wie ich diesen Kauf durch den gleichen weiß App-ID (oder dieser Kauf von diesem bestimmten Telefon) – saurabh

Antwort

1

Sie können den Empfang auf diese Weise (von 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. */ } 

Wenn der Benutzer die App gelöscht, müssen Sie bieten eine Möglichkeit, um den Kauf zu restaurieren.

Sie können etwas tun:

- (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); 
    } 
} 
Verwandte Themen