fix(router): pass card network for external 3DS from additional_payment_method_data (#7473)

This commit is contained in:
Sakil Mostak
2025-03-11 19:50:42 +05:30
committed by GitHub
parent 18db67c755
commit 5cdfe83254
6 changed files with 61 additions and 27 deletions

View File

@ -4233,7 +4233,7 @@ impl ProfileUpdateBridge for api::ProfileUpdate {
.map(ForeignInto::foreign_into),
card_testing_secret_key,
is_clear_pan_retries_enabled: self.is_clear_pan_retries_enabled,
force_3ds_challenge: self.force_3ds_challenge.unwrap_or_default(),
force_3ds_challenge: self.force_3ds_challenge,
},
)))
}

View File

@ -3135,18 +3135,14 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsAuthoriz
payment_data.creds_identifier.as_deref(),
));
let additional_payment_method_data = if payment_data.mandate_id.is_some() {
let parsed_additional_payment_data: Option<api_models::payments::AdditionalPaymentData> =
payment_data.payment_attempt
.payment_method_data
.as_ref().map(|data| data.clone().parse_value("AdditionalPaymentData"))
.transpose()
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Failed to parse AdditionalPaymentData from payment_data.payment_attempt.payment_method_data")?;
parsed_additional_payment_data
} else {
None
};
let additional_payment_method_data: Option<api_models::payments::AdditionalPaymentData> =
payment_data.payment_attempt
.payment_method_data
.as_ref().map(|data| data.clone().parse_value("AdditionalPaymentData"))
.transpose()
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Failed to parse AdditionalPaymentData from payment_data.payment_attempt.payment_method_data")?;
let payment_method_data = payment_data.payment_method_data.or_else(|| {
if payment_data.mandate_id.is_some() {
Some(domain::PaymentMethodData::MandatePayment)