iOS: SKPaymentTransactionStateRestored originalTransaction == nil

Ho un'app con abbonamenti auto rinnovabili, l'acquisto di questi va bene, tuttavia se un utente elimina l'app e tenta di ripristinare le sottoscrizioni in un secondo momento, non sto recuperando i dati che ci si aspetterebbe.

Secondo Apple Docs , dovrei ricevere una Transizione originale con i dettagli della transazione iniziale, nella maggior parte dei casi e sulla sandbox questo è esattamente ciò che sta accadendo tuttavia su alcune delle nostre app live dei clienti stiamo ricevendo un valore nullo per la transazione originale.

Qualcuno può pensare perché non riceverei la Transazione originale? La data restituita in [transaction transactionDate] è la stessa che mi aspetto da [[transactionTransaction transazione] dataDate] tuttavia non so se è lecito ritenere che se la transazione originale è nulla, il [transaction transactionDate] sarà sempre essere la data dell'originale Transazione.

Solutions Collecting From Web of "iOS: SKPaymentTransactionStateRestored originalTransaction == nil"

Stavo avendo lo stesso problema. Ho risolto il problema controllando se la transazione originale è nulla e restituisce la transazione corrente.

ecco il codice che ho sostituito nella - (void)restoreTransaction:(SKPaymentTransaction *)transaction

 if (transaction.originalTransaction.payment.productIdentifier) { [self provideContentForProductIdentifier:transaction.originalTransaction.payment.productIdentifier]; } else { [self provideContentForProductIdentifier:transaction.payment.productIdentifier]; }