mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 21:37:41 +08:00
fix(core): store payment token in payment attempt (#146)
This commit is contained in:
@ -356,7 +356,6 @@ where
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
async fn call_multiple_connectors_service<F, Op, Req>(
|
||||
state: &AppState,
|
||||
merchant_account: &storage::MerchantAccount,
|
||||
@ -521,15 +520,7 @@ pub fn should_call_connector<Op: Debug, F: Clone>(
|
||||
payment_data: &PaymentData<F>,
|
||||
) -> bool {
|
||||
match format!("{:?}", operation).as_str() {
|
||||
"PaymentConfirm" => {
|
||||
payment_data
|
||||
.payment_attempt
|
||||
.authentication_type
|
||||
.unwrap_or_default()
|
||||
== enums::AuthenticationType::NoThreeDs
|
||||
|| payment_data.payment_attempt.payment_method
|
||||
== Some(enums::PaymentMethodType::PayLater)
|
||||
}
|
||||
"PaymentConfirm" => true,
|
||||
"PaymentStart" => {
|
||||
!matches!(
|
||||
payment_data.payment_intent.status,
|
||||
|
||||
@ -197,6 +197,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
|
||||
};
|
||||
|
||||
let connector = payment_data.payment_attempt.connector.clone();
|
||||
let payment_token = payment_data.token.clone();
|
||||
|
||||
payment_data.payment_attempt = db
|
||||
.update_payment_attempt(
|
||||
@ -206,6 +207,7 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
|
||||
payment_method,
|
||||
browser_info,
|
||||
connector,
|
||||
payment_token,
|
||||
},
|
||||
storage_scheme,
|
||||
)
|
||||
|
||||
@ -250,6 +250,23 @@ impl<F: Clone> UpdateTracker<F, PaymentData<F>, api::PaymentsRequest> for Paymen
|
||||
_ => None,
|
||||
};
|
||||
|
||||
let payment_token = payment_data.token.clone();
|
||||
let connector = payment_data.payment_attempt.connector.clone();
|
||||
|
||||
payment_data.payment_attempt = db
|
||||
.update_payment_attempt(
|
||||
payment_data.payment_attempt,
|
||||
storage::PaymentAttemptUpdate::UpdateTrackers {
|
||||
payment_token,
|
||||
connector,
|
||||
},
|
||||
storage_scheme,
|
||||
)
|
||||
.await
|
||||
.map_err(|error| {
|
||||
error.to_not_found_response(errors::ApiErrorResponse::PaymentNotFound)
|
||||
})?;
|
||||
|
||||
let customer_id = payment_data.payment_intent.customer_id.clone();
|
||||
payment_data.payment_intent = db
|
||||
.update_payment_intent(
|
||||
|
||||
Reference in New Issue
Block a user