mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +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("-"),
|
expiration_date: ccard.get_expiry_date_as_yyyymm("-"),
|
||||||
card_code: Some(ccard.card_cvc.clone()),
|
card_code: Some(ccard.card_cvc.clone()),
|
||||||
}),
|
}),
|
||||||
None,
|
Some(ProcessingOptions {
|
||||||
|
is_subsequent_auth: true,
|
||||||
|
}),
|
||||||
None,
|
None,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
@ -151,6 +153,7 @@ struct TransactionRequest {
|
|||||||
currency_code: String,
|
currency_code: String,
|
||||||
payment: PaymentDetails,
|
payment: PaymentDetails,
|
||||||
processing_options: Option<ProcessingOptions>,
|
processing_options: Option<ProcessingOptions>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
subsequent_auth_information: Option<SubsequentAuthInformation>,
|
subsequent_auth_information: Option<SubsequentAuthInformation>,
|
||||||
authorization_indicator_type: Option<AuthorizationIndicator>,
|
authorization_indicator_type: Option<AuthorizationIndicator>,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -765,10 +765,18 @@ where
|
|||||||
{
|
{
|
||||||
let connector = payment_data.payment_attempt.connector.to_owned();
|
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 {
|
let payment_data_and_tokenization_action = match connector {
|
||||||
Some(_) if payment_data.mandate_id.is_some() => {
|
Some(_) if is_mandate => (payment_data, TokenizationAction::SkipConnectorTokenization),
|
||||||
(payment_data, TokenizationAction::SkipConnectorTokenization)
|
|
||||||
}
|
|
||||||
Some(connector) if is_operation_confirm(&operation) => {
|
Some(connector) if is_operation_confirm(&operation) => {
|
||||||
let payment_method = &payment_data
|
let payment_method = &payment_data
|
||||||
.payment_attempt
|
.payment_attempt
|
||||||
|
|||||||
Reference in New Issue
Block a user