Stiamo utilizzando la convalida lato server per verificare i nostri acquisti di app in iTunes. Quando una transazione viene inviata a SKPaymentTransactionObserver, prendiamo la ricevuta da appStoreReceiptURL per convalidarla.Come utilizzare una singola appStoreReceiptURL per verificare più transazioni StoreKit?
if let receiptPath = NSBundle.mainBundle().appStoreReceiptURL?.path where
NSFileManager.defaultManager().fileExistsAtPath(receiptPath),
let receiptData = NSData(contentsOfURL:NSBundle.mainBundle().appStoreReceiptURL!) {
return receiptData
}
Ma in alcuni casi, come quando stiamo restaurando gli acquisti, ricevere più transazioni al metodo:
public func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
Sembra piuttosto strano di utilizzare gli stessi dati di ricevimento per verificare ogni transazione. La ricevuta unica contiene dati su ciascuna transazione?
In una nota correlata, come tracciamo un abbonamento auto-rinnovabile su tutti i dispositivi? Cioè se l'utente ha acquistato l'abbonamento su un iPad, otterrà una transazione aggiornata sul proprio iPhone? O dovranno ripristinare l'acquisto? –
Dovrai offrire un'opzione per il ripristino degli acquisti (questo è un requisito di Apple comunque).Una volta ripristinata, l'app sul nuovo dispositivo avrà la ricevuta. –