From 07c917c0559da1774848d0deb95a2725fc0d6503 Mon Sep 17 00:00:00 2001 From: Chethan Rao <70657455+Chethan-rao@users.noreply.github.com> Date: Wed, 10 Apr 2024 15:52:55 +0530 Subject: [PATCH] fix(mandate): add validation for currency in MIT recurring payments (#4308) --- crates/router/src/core/payments.rs | 13 ++++++++++++- .../core/payments/operations/payment_create.rs | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/crates/router/src/core/payments.rs b/crates/router/src/core/payments.rs index e0950a7289..e4fd17fcbe 100644 --- a/crates/router/src/core/payments.rs +++ b/crates/router/src/core/payments.rs @@ -21,7 +21,7 @@ use api_models::{ use common_utils::{ext_traits::AsyncExt, pii, types::Surcharge}; use data_models::mandates::{CustomerAcceptance, MandateData}; use diesel_models::{ephemeral_key, fraud_check::FraudCheck}; -use error_stack::ResultExt; +use error_stack::{report, ResultExt}; use futures::future::join_all; use helpers::ApplePayData; use masking::Secret; @@ -3101,6 +3101,17 @@ pub async fn decide_multiplex_connector_for_normal_or_recurring_payment(v).ok()) + .and_then(|v| { + serde_json::from_value::(v) + .map_err(|err| { + logger::error!( + "Unable to deserialize payment methods data: {:?}", + err + ) + }) + .ok() + }) .and_then(|pmd| match pmd { PaymentMethodsData::Card(crd) => Some(api::CardDetailFromLocker::from(crd)), _ => None,