From 79e1443c0014b6cb38f6abd7bf2d7accc65fcddf Mon Sep 17 00:00:00 2001 From: Sahkal Poddar Date: Thu, 16 Oct 2025 16:54:11 +0530 Subject: [PATCH] fix(router): Added authentication success check for fetching authentication value (#9769) --- crates/common_enums/src/enums.rs | 4 ++++ .../src/core/payments/operations/payment_confirm.rs | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/common_enums/src/enums.rs b/crates/common_enums/src/enums.rs index af81c2af82..bf856569f8 100644 --- a/crates/common_enums/src/enums.rs +++ b/crates/common_enums/src/enums.rs @@ -8230,6 +8230,10 @@ impl AuthenticationStatus { pub fn is_failed(self) -> bool { self == Self::Failed } + + pub fn is_success(self) -> bool { + self == Self::Success + } } #[derive( diff --git a/crates/router/src/core/payments/operations/payment_confirm.rs b/crates/router/src/core/payments/operations/payment_confirm.rs index 293cfb2cda..4799b88ea7 100644 --- a/crates/router/src/core/payments/operations/payment_confirm.rs +++ b/crates/router/src/core/payments/operations/payment_confirm.rs @@ -1592,10 +1592,14 @@ impl Domain> for authentication }; - let tokenized_data = crate::core::payment_methods::vault::get_tokenized_data(state, authentication_id.get_string_repr(), false, key_store.key.get_inner()).await?; + let tokenized_data = if updated_authentication.authentication_status.is_success() { + Some(crate::core::payment_methods::vault::get_tokenized_data(state, authentication_id.get_string_repr(), false, key_store.key.get_inner()).await?) + } else { + None + }; let authentication_store = hyperswitch_domain_models::router_request_types::authentication::AuthenticationStore { - cavv: Some(masking::Secret::new(tokenized_data.value1)), + cavv: tokenized_data.map(|tokenized_data| masking::Secret::new(tokenized_data.value1)), authentication: updated_authentication };