diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentInteractor.kt b/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentInteractor.kt index 501025b29..421a69083 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentInteractor.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/napm/NativeAlternativePaymentInteractor.kt @@ -99,6 +99,7 @@ internal class NativeAlternativePaymentInteractor( private var paymentState: PONativeAlternativePaymentState = UNKNOWN private var latestDefaultValuesRequest: NativeAlternativePaymentDefaultValuesRequest? = null + private var latestWillSubmitParametersEvent: WillSubmitParameters? = null private var captureStartTimestamp = 0L private var capturePassedTimestamp = 0L @@ -447,7 +448,12 @@ internal class NativeAlternativePaymentInteractor( ) } POLogger.info("Submitted: waiting for additional payment parameters.") - dispatch(DidSubmitParameters(additionalParametersExpected = true)) + dispatch( + event = DidSubmitParameters( + parameters = latestWillSubmitParametersEvent?.parameters ?: emptyList(), + additionalParametersExpected = true + ) + ) } //endregion @@ -621,7 +627,9 @@ internal class NativeAlternativePaymentInteractor( return@whenNextStep } POLogger.info("Will submit payment parameters.") - dispatch(WillSubmitParameters(parameters = stateValue.fields.map { it.parameter })) + val willSubmitParametersEvent = WillSubmitParameters(parameters = stateValue.fields.map { it.parameter }) + latestWillSubmitParametersEvent = willSubmitParametersEvent + dispatch(willSubmitParametersEvent) val invalidFields = stateValue.fields.mapNotNull { it.validate() } if (invalidFields.isNotEmpty()) { val failure = ProcessOutResult.Failure( @@ -943,7 +951,12 @@ internal class NativeAlternativePaymentInteractor( elements: List ) { POLogger.info("All payment parameters has been submitted.") - dispatch(DidSubmitParameters(additionalParametersExpected = false)) + dispatch( + event = DidSubmitParameters( + parameters = latestWillSubmitParametersEvent?.parameters ?: emptyList(), + additionalParametersExpected = false + ) + ) POLogger.info("Waiting for payment confirmation.") dispatch(WillWaitForPaymentConfirmation) val pendingStateValue = stateValue.toPendingStateValue( diff --git a/ui/src/main/kotlin/com/processout/sdk/ui/napm/delegate/v2/PONativeAlternativePaymentEvent.kt b/ui/src/main/kotlin/com/processout/sdk/ui/napm/delegate/v2/PONativeAlternativePaymentEvent.kt index 8edfb1ac5..c29979a04 100644 --- a/ui/src/main/kotlin/com/processout/sdk/ui/napm/delegate/v2/PONativeAlternativePaymentEvent.kt +++ b/ui/src/main/kotlin/com/processout/sdk/ui/napm/delegate/v2/PONativeAlternativePaymentEvent.kt @@ -42,9 +42,12 @@ sealed class PONativeAlternativePaymentEvent { /** * Event is sent when parameters were submitted successfully. - * Inspect the associated value [additionalParametersExpected] to check whether additional user input is required. + * + * @param[parameters] Parameter definitions. + * @param[additionalParametersExpected] Indicates whether additional user input is required. */ data class DidSubmitParameters( + val parameters: List, val additionalParametersExpected: Boolean ) : PONativeAlternativePaymentEvent()