diff --git a/lib/ProMotion/iap.rb b/lib/ProMotion/iap.rb index 8558ff8..12132ba 100644 --- a/lib/ProMotion/iap.rb +++ b/lib/ProMotion/iap.rb @@ -122,6 +122,12 @@ def transaction_product_id(transaction) transaction.respond_to?(:payment) ? transaction.payment.productIdentifier : "all" end + def transaction_complete?(transactions) + states = transactions.map(&:transactionState) + return true unless states.include?(SKPaymentTransactionStatePurchasing) + false + end + public # SKProductsRequestDelegate methods @@ -160,6 +166,7 @@ def paymentQueue(_, updatedTransactions:transactions) end end end + iap_shutdown if transaction_complete?(transactions) end def paymentQueue(_, restoreCompletedTransactionsFailedWithError:error)