From 60ef06e8ffdb83e6ae2d3b12a263d7b27bb606f3 Mon Sep 17 00:00:00 2001 From: sweta-sharma <77436883+swetasharma03@users.noreply.github.com> Date: Fri, 29 Aug 2025 15:58:33 +0530 Subject: [PATCH] fix(connector): [AUTHORIZEDOTNET] customer id population fixed in authorize flow (#9079) --- .../authorizedotnet/transformers.rs | 82 ++++++++++--------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/crates/hyperswitch_connectors/src/connectors/authorizedotnet/transformers.rs b/crates/hyperswitch_connectors/src/connectors/authorizedotnet/transformers.rs index c523b08b5a..b0b5fee07b 100644 --- a/crates/hyperswitch_connectors/src/connectors/authorizedotnet/transformers.rs +++ b/crates/hyperswitch_connectors/src/connectors/authorizedotnet/transformers.rs @@ -903,13 +903,15 @@ impl description: item.router_data.connector_request_reference_id.clone(), }, - customer: Some(CustomerDetails { - id: if item.router_data.payment_id.len() <= MAX_ID_LENGTH { - item.router_data.payment_id.clone() + customer: item.router_data.customer_id.as_ref().and_then(|cid| { + if cid.get_string_repr().len() <= MAX_ID_LENGTH { + Some(CustomerDetails { + id: cid.get_string_repr().to_string(), + email: item.router_data.request.get_optional_email(), + }) } else { - get_random_string() - }, - email: item.router_data.request.get_optional_email(), + None + } }), bill_to: item .router_data @@ -992,13 +994,15 @@ impl description: item.router_data.connector_request_reference_id.clone(), }, - customer: Some(CustomerDetails { - id: if item.router_data.payment_id.len() <= MAX_ID_LENGTH { - item.router_data.payment_id.clone() + customer: item.router_data.customer_id.as_ref().and_then(|cid| { + if cid.get_string_repr().len() <= MAX_ID_LENGTH { + Some(CustomerDetails { + id: cid.get_string_repr().to_string(), + email: item.router_data.request.get_optional_email(), + }) } else { - get_random_string() - }, - email: item.router_data.request.get_optional_email(), + None + } }), bill_to: None, user_fields: match item.router_data.request.metadata.clone() { @@ -1034,21 +1038,19 @@ impl &Card, ), ) -> Result { - let (profile, customer) = ( - Some(ProfileDetails::CreateProfileDetails(CreateProfileDetails { - create_profile: true, - })), - Some(CustomerDetails { - //The payment ID is included in the customer details because the connector requires unique customer information with a length of fewer than 20 characters when creating a mandate. - //If the length exceeds 20 characters, a random alphanumeric string is used instead. - id: if item.router_data.payment_id.len() <= MAX_ID_LENGTH { - item.router_data.payment_id.clone() - } else { - get_random_string() - }, - email: item.router_data.request.get_optional_email(), - }), - ); + let profile = Some(ProfileDetails::CreateProfileDetails(CreateProfileDetails { + create_profile: true, + })); + let customer = item.router_data.customer_id.as_ref().and_then(|cid| { + if cid.get_string_repr().len() <= MAX_ID_LENGTH { + Some(CustomerDetails { + id: cid.get_string_repr().to_string(), + email: item.router_data.request.get_optional_email(), + }) + } else { + None + } + }); Ok(Self { transaction_type: TransactionType::try_from(item.router_data.request.capture_method)?, amount: item.amount, @@ -1118,19 +1120,19 @@ impl &WalletData, ), ) -> Result { - let (profile, customer) = ( - Some(ProfileDetails::CreateProfileDetails(CreateProfileDetails { - create_profile: true, - })), - Some(CustomerDetails { - id: if item.router_data.payment_id.len() <= MAX_ID_LENGTH { - item.router_data.payment_id.clone() - } else { - get_random_string() - }, - email: item.router_data.request.get_optional_email(), - }), - ); + let profile = Some(ProfileDetails::CreateProfileDetails(CreateProfileDetails { + create_profile: true, + })); + let customer = item.router_data.customer_id.as_ref().and_then(|cid| { + if cid.get_string_repr().len() <= MAX_ID_LENGTH { + Some(CustomerDetails { + id: cid.get_string_repr().to_string(), + email: item.router_data.request.get_optional_email(), + }) + } else { + None + } + }); Ok(Self { transaction_type: TransactionType::try_from(item.router_data.request.capture_method)?, amount: item.amount,