diff --git a/CHANGELOG.md b/CHANGELOG.md index ae18d6037..302031ba2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log All notable changes to this project will be documented in this file. +## Fixed +- sk1 purchase failed, but return success + - Fixed in Pull Request [#83](https://github.com/space-code/flare/pull/83) + ## Updated - Update `CHANGELOG.md` - Updated in Pull Request [#74](https://github.com/space-code/flare/pull/74). diff --git a/Sources/Flare/Classes/Providers/PaymentProvider/PaymentProvider.swift b/Sources/Flare/Classes/Providers/PaymentProvider/PaymentProvider.swift index 8fc3bba75..09caa0a57 100644 --- a/Sources/Flare/Classes/Providers/PaymentProvider/PaymentProvider.swift +++ b/Sources/Flare/Classes/Providers/PaymentProvider/PaymentProvider.swift @@ -125,12 +125,20 @@ extension PaymentProvider: SKPaymentTransactionObserver { forKey: transaction.payment.productIdentifier ), !handlers.isEmpty { self.dispatchQueueFactory.main().async { - handlers.forEach { $0(queue, .success(transaction)) } + if let error = transaction.error { + handlers.forEach { $0(queue, .failure(IAPError(error: error))) } + } else { + handlers.forEach { $0(queue, .success(transaction)) } + } } } else { let handler = self.fallbackHandler self.dispatchQueueFactory.main().async { - handler?(queue, .success(transaction)) + if let error = transaction.error { + handler?(queue, .failure(IAPError(error: error))) + } else { + handler?(queue, .success(transaction)) + } } } }