feat(core): add merchant order reference id (#5197)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
SamraatBansal
2024-07-04 18:15:05 +05:30
committed by GitHub
parent 755d968c95
commit f4665d2f4a
22 changed files with 135 additions and 1 deletions

View File

@ -3136,6 +3136,7 @@ mod tests {
charges: None,
frm_metadata: None,
customer_details: None,
merchant_order_reference_id: None,
};
let req_cs = Some("1".to_string());
assert!(authenticate_client_secret(req_cs.as_ref(), &payment_intent).is_ok());
@ -3196,6 +3197,7 @@ mod tests {
charges: None,
frm_metadata: None,
customer_details: None,
merchant_order_reference_id: None,
};
let req_cs = Some("1".to_string());
assert!(authenticate_client_secret(req_cs.as_ref(), &payment_intent,).is_err())
@ -3255,6 +3257,7 @@ mod tests {
charges: None,
frm_metadata: None,
customer_details: None,
merchant_order_reference_id: None,
};
let req_cs = Some("1".to_string());
assert!(authenticate_client_secret(req_cs.as_ref(), &payment_intent).is_err())

View File

@ -1262,6 +1262,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
request_external_three_ds_authentication: None,
frm_metadata: m_frm_metadata,
customer_details,
merchant_order_reference_id: None,
},
&m_key_store,
storage_scheme,

View File

@ -1117,6 +1117,7 @@ impl PaymentCreate {
charges,
frm_metadata: request.frm_metadata.clone(),
customer_details,
merchant_order_reference_id: request.merchant_order_reference_id.clone(),
})
}

View File

@ -372,6 +372,11 @@ impl<F: Send + Clone> GetTracker<F, PaymentData<F>, api::PaymentsRequest> for Pa
.request_external_three_ds_authentication
.or(payment_intent.request_external_three_ds_authentication);
payment_intent.merchant_order_reference_id = request
.merchant_order_reference_id
.clone()
.or(payment_intent.merchant_order_reference_id);
Self::populate_payment_attempt_with_request(&mut payment_attempt, request);
let creds_identifier = request
@ -707,6 +712,11 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
let metadata = payment_data.payment_intent.metadata.clone();
let frm_metadata = payment_data.payment_intent.frm_metadata.clone();
let session_expiry = payment_data.payment_intent.session_expiry;
let merchant_order_reference_id = payment_data
.payment_intent
.merchant_order_reference_id
.clone();
payment_data.payment_intent = state
.store
.update_payment_intent(
@ -736,6 +746,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
.request_external_three_ds_authentication,
frm_metadata,
customer_details,
merchant_order_reference_id,
},
key_store,
storage_scheme,

View File

@ -880,6 +880,7 @@ where
.set_updated(Some(payment_intent.modified_at))
.set_charges(charges_response)
.set_frm_metadata(payment_intent.frm_metadata)
.set_merchant_order_reference_id(payment_intent.merchant_order_reference_id)
.to_owned(),
headers,
))
@ -1305,6 +1306,11 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsAuthoriz
None => None,
};
let merchant_order_reference_id = payment_data
.payment_intent
.merchant_order_reference_id
.clone();
Ok(Self {
payment_method_data: From::from(
payment_method_data.get_required_value("payment_method_data")?,
@ -1350,6 +1356,7 @@ impl<F: Clone> TryFrom<PaymentAdditionalData<'_, F>> for types::PaymentsAuthoriz
.transpose()?,
customer_acceptance: payment_data.customer_acceptance,
charges,
merchant_order_reference_id,
integrity_object: None,
})
}