fix(core): store payment token in payment attempt (#146)

This commit is contained in:
Narayan Bhat
2022-12-16 12:10:09 +05:30
committed by GitHub
parent bf7f24125f
commit aaa1901c5d
10 changed files with 49 additions and 11 deletions

View File

@ -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,

View File

@ -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,
)

View File

@ -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(