@uzolenta

Как обработать in-app-purchase статус deferred?

Здравствуйте!
данный статус "deferred" же означает, что покупка совершена, но не закончена?

У Google, например, есть проблема, что пользователь начинает покупку, а заканчивает ее через долгое время (не знаю как так до сих пор), соответственно, приложение не дожидается ответа от Google и не может дальше зачислять внутренние монеты в приложении. У Apple такая же проблема есть?

Не понял, как поступать: https://developer.apple.com/documentation/storekit...
В основном везде примерно как и у меня код, без обработки этого статуса покупки:
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
        purchaseStatusBlock?(.restored)
    }
    
    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
        for transaction:AnyObject in transactions {
            if let trans = transaction as? SKPaymentTransaction {
                
                switch trans.transactionState {
                case .purchased:
                    print("purchased")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                    purchaseStatusBlock?(.purchased)
                    check()
                    break
                    
                case .failed:
                    print("failed")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                    break
                case .restored:
                    print("restored")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                    break
                    
                default: break
                }}}
    }


Разъясните, пожалуйста, как обрабатывать незавершенные транзакции.
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
YeahGarage
@YeahGarage
Developer
Интересно что опытные ребята ответят, я deferred отлавливаю только в данном варианте
extension IAPManager: SKPaymentTransactionObserver {
    
    
    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
        
        for transaction in transactions {
            switch transaction.transactionState {
            case .deferred: break
            case .purchasing: break
            case .failed: print("failed")
            case .purchased: print("purchased")
            case .restored: print("restored")
            }
        }
    }
    
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 50 000 до 150 000 руб.
Home Credit Bank Москва
от 150 000 до 300 000 руб.
Купи батон Ульяновск
от 80 000 до 120 000 руб.