NTP-4075 | Fixed initiation mode for intent pay (#12634)

This commit is contained in:
Ujjwal Kumar
2024-09-20 19:18:27 +05:30
committed by GitHub
parent e5d9ee041f
commit 4e8be9cc2e

View File

@@ -10,6 +10,7 @@ package com.navi.pay.onboarding.launcher.viewmodel
import android.net.Uri
import android.os.Bundle
import androidx.lifecycle.viewModelScope
import com.navi.base.utils.isNotNullAndNotEmpty
import com.navi.base.utils.orFalse
import com.navi.common.network.models.RepoResult
import com.navi.common.network.models.isSuccessWithData
@@ -47,6 +48,7 @@ import com.navi.pay.onboarding.launcher.model.view.LauncherScreenToNextScreenNav
import com.navi.pay.utils.DEFAULT_INITIATION_MODE_INTENT_MANDATE_AND_TRANSACTION
import com.navi.pay.utils.IS_DELAYED_ONBOARDING_ENABLED
import com.navi.pay.utils.IS_FROM_IAN
import com.navi.pay.utils.NAVI_PAY_DEFAULT_MCC
import com.navi.pay.utils.NAVI_PAY_ENCRYPT_SHARED_PREF_DATA_KEYS
import com.navi.pay.utils.NAVI_PAY_INTENT_COLLECT_HOST
import com.navi.pay.utils.NAVI_PAY_INTENT_MANDATE_HOST
@@ -281,12 +283,10 @@ constructor(
)
}
}
NAVI_PAY_INTENT_PAY_HOST -> { // For intent pay initiation mode should
// always be 04
val payeeEntity =
upiUriResult.payeeEntity.copy(
mode = DEFAULT_INITIATION_MODE_INTENT_MANDATE_AND_TRANSACTION
)
NAVI_PAY_INTENT_PAY_HOST -> {
var payeeEntity = upiUriResult.payeeEntity
val validateVpaAPIResponse =
validateVpaUseCase.execute(
request =
@@ -298,7 +298,7 @@ constructor(
)
)
val payeeEntityWithVpaDataAdded =
payeeEntity =
payeeEntity.copy(
isMerchant =
validateVpaAPIResponse.data?.isMerchant
@@ -309,14 +309,26 @@ constructor(
mcc = validateVpaAPIResponse.data?.mcc ?: payeeEntity.mcc,
name = validateVpaAPIResponse.data?.name ?: payeeEntity.name,
bankCode = validateVpaAPIResponse.data?.bankCode,
isNpciData = validateVpaAPIResponse.data?.isNpciData ?: false
isNpciData = validateVpaAPIResponse.data?.isNpciData ?: false,
)
// For intent pay, initiation mode should be 04 for non P2P payments
if (
payeeEntity.mcc.isNotNullAndNotEmpty() &&
payeeEntity.mcc != NAVI_PAY_DEFAULT_MCC
) {
payeeEntity =
payeeEntity.copy(
mode =
DEFAULT_INITIATION_MODE_INTENT_MANDATE_AND_TRANSACTION
)
}
updateNaviPaySessionId()
updateNavigateToNextScreenValue(
value =
LauncherScreenToNextScreenNavigate.IntentPay(
payeeEntity = payeeEntityWithVpaDataAdded
payeeEntity = payeeEntity
)
)
}