non dimenticate di verificare se è possibile effettuare un pagamento:
if (SKPaymentQueue.canMakePayments()) {
SKPaymentQueue.default().restoreCompletedTransactions()
}
per controllo se il ripristino è stato buono si deve seguire il protocollo: SKPaymentTransactionObserver
e quindi implementare il metodo:
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!)
e sottoscrivere l'evento effettuando:
SKPaymentQueue.default().addTransactionObserver(self)
Infine qui è un esempio di come si controlla il risultato:
func paymentQueue(_ queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
print("Received Payment Transaction Response from Apple");
for transaction in transactions {
switch transaction.transactionState {
case .purchased, .restored:
print("Purchased purchase/restored")
SKPaymentQueue.default().finishTransaction(transaction as SKPaymentTransaction)
break
case .failed:
print("Purchased Failed")
SKPaymentQueue.default().finishTransaction(transaction as SKPaymentTransaction)
break
default:
print("default")
break
}
}
}