Мы подписались на некоторые продукты, в первый раз продукт успешно прошел транзакцию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 транзакции возвращает только ложь.