mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
fix(mandate): allow card details to be provided in case of network transaction id (#1138)
This commit is contained in:
@ -120,7 +120,9 @@ fn get_pm_and_subsequent_auth_detail(
|
||||
expiration_date: ccard.get_expiry_date_as_yyyymm("-"),
|
||||
card_code: Some(ccard.card_cvc.clone()),
|
||||
}),
|
||||
None,
|
||||
Some(ProcessingOptions {
|
||||
is_subsequent_auth: true,
|
||||
}),
|
||||
None,
|
||||
))
|
||||
}
|
||||
@ -151,6 +153,7 @@ struct TransactionRequest {
|
||||
currency_code: String,
|
||||
payment: PaymentDetails,
|
||||
processing_options: Option<ProcessingOptions>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
subsequent_auth_information: Option<SubsequentAuthInformation>,
|
||||
authorization_indicator_type: Option<AuthorizationIndicator>,
|
||||
}
|
||||
|
||||
@ -765,10 +765,18 @@ where
|
||||
{
|
||||
let connector = payment_data.payment_attempt.connector.to_owned();
|
||||
|
||||
let is_mandate = payment_data
|
||||
.mandate_id
|
||||
.as_ref()
|
||||
.and_then(|inner| inner.mandate_reference_id.as_ref())
|
||||
.map(|mandate_reference| match mandate_reference {
|
||||
api_models::payments::MandateReferenceId::ConnectorMandateId(_) => true,
|
||||
api_models::payments::MandateReferenceId::NetworkMandateId(_) => false,
|
||||
})
|
||||
.unwrap_or(false);
|
||||
|
||||
let payment_data_and_tokenization_action = match connector {
|
||||
Some(_) if payment_data.mandate_id.is_some() => {
|
||||
(payment_data, TokenizationAction::SkipConnectorTokenization)
|
||||
}
|
||||
Some(_) if is_mandate => (payment_data, TokenizationAction::SkipConnectorTokenization),
|
||||
Some(connector) if is_operation_confirm(&operation) => {
|
||||
let payment_method = &payment_data
|
||||
.payment_attempt
|
||||
|
||||
Reference in New Issue
Block a user