iOS IAP - Как отличить состояние "восстановлено, но не куплено раньше"
Как я могу выделить условие, когда пользователь нажимает кнопку восстановления, но никогда не покупал этот пакет IAP раньше.
Когда я запускаю
SKPaymentQueue.default().restoreCompletedTransactions()
система запускает следующие обратные вызовы
1) Для уже купленного предмета те 2 в таком порядке
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
2) Для еще не купленного предмета просто
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
С этими возможными комбинациями, как я могу гарантировать / проверить, что был вызван вызов 'restore', но результат "еще не куплен".
Действительно ли мне нужно сохранять состояние "paymentQueue еще не вызывалось, а теперь paymentQueueRestoreCompletedTransactionsFinished называлось" как условие?
1 ответ
Все, что вам нужно сделать, это обработать любые покупки, которые доставлены в updatedTransactions
как вы делаете для первоначального случая покупки. То есть. разблокируйте контент или предоставьте дополнительные функции и сохраните покупку в связке ключей или любым другим способом, который вы используете.
paymentQueueRestoreCompletedTransactionsFinished
позволяет узнать, что операция восстановления завершена. Вы можете использовать этот метод для обновления вашего интерфейса, если это необходимо. Например, если вы показали индикатор активности, когда начали восстанавливать, вы можете использовать этот обратный вызов, чтобы удалить этот индикатор.