mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 18:17:13 +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
	 Nishant Joshi
					Nishant Joshi