From 6ff87416e67603f7c28bb526969fc5005e9e38b4 Mon Sep 17 00:00:00 2001 From: Ujjwal Kumar Date: Tue, 20 Feb 2024 14:57:55 +0530 Subject: [PATCH] TP-57671 | Added logs for cred block params (#9834) Co-authored-by: shaurya-rehan --- .../FirebaseRemoteConfigHelper.kt | 1 + .../navi/pay/analytics/NaviPayAnalytics.kt | 53 +++++++++++++++++++ .../com/navi/pay/npcicl/NpciRepository.kt | 34 ++++++++++++ 3 files changed, 88 insertions(+) diff --git a/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt b/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt index 8cd70c6247..dcc29e32ac 100644 --- a/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt +++ b/navi-common/src/main/java/com/navi/common/firebaseremoteconfig/FirebaseRemoteConfigHelper.kt @@ -101,6 +101,7 @@ object FirebaseRemoteConfigHelper { "UPI_LITE_NUDGE_ENABLED_ON_PAYMENT_SUMMARY_SCREEN" const val ENABLE_UI_TRON_MODIFIER_BUILDER = "ENABLE_UI_TRON_MODIFIER_BUILDER" const val ENABLE_NAVI_PAY_KILL_SWITCH_MECHANISM = "ENABLE_NAVI_PAY_KILL_SWITCH_MECHANISM" + const val NAVI_PAY_ENABLE_CRED_BLOCK_LOGS = "NAVI_PAY_ENABLE_CRED_BLOCK_LOGS" // BBPS const val NAVI_BBPS_CATEGORIES_CACHE_MILLIS = "NAVI_BBPS_CATEGORIES_CACHE_MILLIS" diff --git a/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt b/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt index 76355f9a2d..1d6190bda1 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/analytics/NaviPayAnalytics.kt @@ -2284,6 +2284,59 @@ class NaviPayAnalytics private constructor() { ) } + fun onRegisterUserDataLogs( + hmac: String, + token: String, + random: String, + challenge: String, + tokenRequestType: String, + mobileNumber: String, + deviceData: String + ) { + NaviTrackEvent.trackEventOnClickStream( + "Dev_NaviPay_NpciCl_RegisterUserDataLogs", + mapOf( + "hmac" to hmac, + "token" to token, + "random" to random, + "challenge" to challenge, + "tokenRequestType" to tokenRequestType, + "mobileNumber" to mobileNumber, + "deviceData" to deviceData + ) + ) + } + + fun onFetchCredentialDataLogs( + xmlPayload: String, + trustMapJson: String, + payInfoJson: String, + configurationJson: String, + credAllowedJson: String, + parentSalt: String, + random: String + ) { + NaviTrackEvent.trackEventOnClickStream( + "Dev_NaviPay_NpciCl_FetchCredentialDataLogs", + mapOf( + "xmlPayload" to xmlPayload, + "trustMapJson" to trustMapJson, + "payInfoJson" to payInfoJson, + "configurationJson" to configurationJson, + "credAllowedJson" to credAllowedJson, + "parentSalt" to parentSalt, + "random" to random + ) + ) + } + + fun onSaltForCredTypeTxnIdMap(entry: String, salt: String) { + NaviTrackEvent.trackEventOnClickStream( + "Dev_NaviPay_NpciCl_SaltForCredTypeTxnIdMap", + mapOf("entry" to entry, "salt" to salt) + ) + } + fun onRegisterUserCalled( deviceData: DeviceData, mobileNumber: String, diff --git a/navi-pay/src/main/kotlin/com/navi/pay/npcicl/NpciRepository.kt b/navi-pay/src/main/kotlin/com/navi/pay/npcicl/NpciRepository.kt index 54fc7bdbf4..adefa281a5 100644 --- a/navi-pay/src/main/kotlin/com/navi/pay/npcicl/NpciRepository.kt +++ b/navi-pay/src/main/kotlin/com/navi/pay/npcicl/NpciRepository.kt @@ -13,6 +13,8 @@ import android.os.Looper import android.os.ResultReceiver import android.util.Base64 import com.google.gson.Gson +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper +import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper.NAVI_PAY_ENABLE_CRED_BLOCK_LOGS import com.navi.common.network.models.RepoResult import com.navi.common.network.models.isError import com.navi.common.network.models.isSuccessWithData @@ -165,6 +167,19 @@ constructor( deviceId = deviceData.deviceId, random = random ) + + if (FirebaseRemoteConfigHelper.getBoolean(NAVI_PAY_ENABLE_CRED_BLOCK_LOGS)) { + naviPayAnalytics.onRegisterUserDataLogs( + hmac = hmac, + random = random, + token = token, + challenge = challenge, + tokenRequestType = tokenRequestType, + mobileNumber = mobileNumber, + deviceData = deviceData.toString(), + ) + } + val isRegistered = npciClService.instance.registerApp( deviceData.packageName, @@ -277,6 +292,13 @@ constructor( ) .toJson(gson = gson) + if (FirebaseRemoteConfigHelper.getBoolean(NAVI_PAY_ENABLE_CRED_BLOCK_LOGS)) { + naviPayAnalytics.onSaltForCredTypeTxnIdMap( + salt = salt, + entry = entry.toString(), + ) + } + trustMap[entry.key] = npciUtils.createTrust(salt = salt, token = npciToken) ?: "" } @@ -292,6 +314,18 @@ constructor( isSaltAvailable = parentSalt.isNotBlank() ) + if (FirebaseRemoteConfigHelper.getBoolean(NAVI_PAY_ENABLE_CRED_BLOCK_LOGS)) { + naviPayAnalytics.onFetchCredentialDataLogs( + credAllowedJson = credAllowedJson, + configurationJson = configurationJson, + payInfoJson = payInfoJson, + trustMapJson = trustMapJson, + xmlPayload = xmlPayload, + parentSalt = parentSalt, + random = random + ) + } + npciClService.instance.getCredential( npciCredData.keyCode, xmlPayload,