SKPaymentTransaction всегда получала ошибку во время второй транзакции покупки, если при проверке на сервере Apple произошел сбой - PullRequest
0 голосов
/ 22 апреля 2019

Мы подписались на некоторые продукты, в первый раз продукт успешно прошел транзакциюIdentifier, а после второй попытки покупки мы получили только недействительную ошибку квитанции.

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")
                    print(transaction.transactionIdentifier)
                    self.deliverProduct(product: transaction.payment.productIdentifier, transactionID: transaction.transactionIdentifier ?? "")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                    purchaseStatusBlock?(.purchased)

                    break

                case .failed:

                    print("failed")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)

                    break
                case .restored:

                    print(transaction.transactionIdentifier)
                    self.deliverProduct(product: transaction.payment.productIdentifier, transactionID: transaction.transactionIdentifier ?? "")
                    SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                    break

                default:
                break

                }}}
    }

здесь ID транзакции первый раз вернется корректно. но во второй раз ID транзакции возвращает только ложь.

...