Восстановить покупку: не расходуемые
Я заполнил небольшое приложение, в котором у меня есть опция покупки без расходных материалов. Это в App Store.
Покупка товара проходит нормально. Это моя функция восстановления покупки, которая, кажется, ничего не делает.
Я добавил этот код для восстановления покупки@IBAction
:
@IBAction func restorePurchases(sender: AnyObject) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
Но ничего не происходит, когда я нажимаю кнопку восстановления покупки.
Я думаю, что мне нужно добавить функцию, которая проверяет, было ли восстановление успешным или нет. Я планирую изменить код на следующее:
@IBAction func restorePurchases(sender: AnyObject) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
for transaction:AnyObject in transactions {
if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{
switch trans.transactionState {
case .Restored:
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
var alert = UIAlertView(title: "Thank You", message: "Your purchase(s) were restored.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
break;
case .Failed:
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
var alert = UIAlertView(title: "Sorry", message: "Your purchase(s) could not be restored.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
break;
default:
break;
}
}
}
Будет ли это сделать трюк?
Я прошел через все темы, связанные с осуществлением транзакций покупки с восстановлением, и мои исследования привели меня к вышесказанному. Так что я не думаю, что это дубликат вопроса, но, возможно, может уточнить, как успешно восстановить покупки для других, сталкивающихся с моей аналогичной ситуацией.