Восстановление покупки InApp с помощью swift, iOS
я реализую восстановление в App purchase. У меня есть кнопка, действие которой
@IBAction func restorePurchases(send : AnyObject){
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
// if (success) {
// I want to do something here
// }
}
мой вопрос.
- это правильный способ восстановления?
- как мы можем проверить действие успеха для восстановления покупок?
1 ответов
не забудьте проверить, если вы можете сделать оплату:
if (SKPaymentQueue.canMakePayments()) {
SKPaymentQueue.default().restoreCompletedTransactions()
}
для проверки, было ли восстановление хорошим, вы должны следовать протоколу:
SKPaymentTransactionObserver
а затем реализовать метод:
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!)
и подпишитесь на мероприятие, выполнив:
SKPaymentQueue.default().add(self)
наконец, вот пример того, как я проверяю результат:
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
}
}
}