mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 05:17:02 +08:00
feat(payments_update): update payment_method_billing in payment update (#4614)
This commit is contained in:
@ -188,6 +188,7 @@ pub enum PaymentAttemptUpdate {
|
|||||||
surcharge_amount: Option<i64>,
|
surcharge_amount: Option<i64>,
|
||||||
tax_amount: Option<i64>,
|
tax_amount: Option<i64>,
|
||||||
fingerprint_id: Option<String>,
|
fingerprint_id: Option<String>,
|
||||||
|
payment_method_billing_address_id: Option<String>,
|
||||||
updated_by: String,
|
updated_by: String,
|
||||||
},
|
},
|
||||||
UpdateTrackers {
|
UpdateTrackers {
|
||||||
@ -526,6 +527,7 @@ impl From<PaymentAttemptUpdate> for PaymentAttemptUpdateInternal {
|
|||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
|
payment_method_billing_address_id,
|
||||||
} => Self {
|
} => Self {
|
||||||
amount: Some(amount),
|
amount: Some(amount),
|
||||||
currency: Some(currency),
|
currency: Some(currency),
|
||||||
@ -544,6 +546,7 @@ impl From<PaymentAttemptUpdate> for PaymentAttemptUpdateInternal {
|
|||||||
surcharge_amount,
|
surcharge_amount,
|
||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
|
payment_method_billing_address_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|||||||
@ -282,6 +282,7 @@ pub enum PaymentAttemptUpdate {
|
|||||||
surcharge_amount: Option<i64>,
|
surcharge_amount: Option<i64>,
|
||||||
tax_amount: Option<i64>,
|
tax_amount: Option<i64>,
|
||||||
fingerprint_id: Option<String>,
|
fingerprint_id: Option<String>,
|
||||||
|
payment_method_billing_address_id: Option<String>,
|
||||||
updated_by: String,
|
updated_by: String,
|
||||||
},
|
},
|
||||||
UpdateTrackers {
|
UpdateTrackers {
|
||||||
|
|||||||
@ -97,11 +97,6 @@ impl<F: Send + Clone, Ctx: PaymentMethodRetrieve>
|
|||||||
|
|
||||||
helpers::authenticate_client_secret(request.client_secret.as_ref(), &payment_intent)?;
|
helpers::authenticate_client_secret(request.client_secret.as_ref(), &payment_intent)?;
|
||||||
|
|
||||||
payment_intent = db
|
|
||||||
.find_payment_intent_by_payment_id_merchant_id(&payment_id, merchant_id, storage_scheme)
|
|
||||||
.await
|
|
||||||
.to_not_found_response(errors::ApiErrorResponse::PaymentNotFound)?;
|
|
||||||
|
|
||||||
payment_intent.order_details = request
|
payment_intent.order_details = request
|
||||||
.get_order_details_as_value()
|
.get_order_details_as_value()
|
||||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||||
@ -236,6 +231,9 @@ impl<F: Send + Clone, Ctx: PaymentMethodRetrieve>
|
|||||||
|
|
||||||
payment_intent.shipping_address_id = shipping_address.clone().map(|x| x.address_id);
|
payment_intent.shipping_address_id = shipping_address.clone().map(|x| x.address_id);
|
||||||
payment_intent.billing_address_id = billing_address.clone().map(|x| x.address_id);
|
payment_intent.billing_address_id = billing_address.clone().map(|x| x.address_id);
|
||||||
|
payment_attempt.payment_method_billing_address_id = payment_method_billing
|
||||||
|
.as_ref()
|
||||||
|
.map(|payment_method_billing| payment_method_billing.address_id.clone());
|
||||||
|
|
||||||
payment_intent.allowed_payment_method_types = request
|
payment_intent.allowed_payment_method_types = request
|
||||||
.get_allowed_payment_method_types_as_value()
|
.get_allowed_payment_method_types_as_value()
|
||||||
@ -348,16 +346,20 @@ impl<F: Send + Clone, Ctx: PaymentMethodRetrieve>
|
|||||||
(Box::new(self), amount)
|
(Box::new(self), amount)
|
||||||
};
|
};
|
||||||
|
|
||||||
payment_intent.status = match request.payment_method_data.as_ref() {
|
payment_intent.status = if request
|
||||||
Some(_) => {
|
.payment_method_data
|
||||||
|
.as_ref()
|
||||||
|
.is_some_and(|payment_method_data| payment_method_data.payment_method_data.is_some())
|
||||||
|
{
|
||||||
if request.confirm.unwrap_or(false) {
|
if request.confirm.unwrap_or(false) {
|
||||||
payment_intent.status
|
payment_intent.status
|
||||||
} else {
|
} else {
|
||||||
storage_enums::IntentStatus::RequiresConfirmation
|
storage_enums::IntentStatus::RequiresConfirmation
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
None => storage_enums::IntentStatus::RequiresPaymentMethod,
|
storage_enums::IntentStatus::RequiresPaymentMethod
|
||||||
};
|
};
|
||||||
|
|
||||||
payment_intent.request_external_three_ds_authentication = request
|
payment_intent.request_external_three_ds_authentication = request
|
||||||
.request_external_three_ds_authentication
|
.request_external_three_ds_authentication
|
||||||
.or(payment_intent.request_external_three_ds_authentication);
|
.or(payment_intent.request_external_three_ds_authentication);
|
||||||
@ -622,6 +624,10 @@ impl<F: Clone, Ctx: PaymentMethodRetrieve>
|
|||||||
let payment_experience = payment_data.payment_attempt.payment_experience;
|
let payment_experience = payment_data.payment_attempt.payment_experience;
|
||||||
let amount_to_capture = payment_data.payment_attempt.amount_to_capture;
|
let amount_to_capture = payment_data.payment_attempt.amount_to_capture;
|
||||||
let capture_method = payment_data.payment_attempt.capture_method;
|
let capture_method = payment_data.payment_attempt.capture_method;
|
||||||
|
let payment_method_billing_address_id = payment_data
|
||||||
|
.payment_attempt
|
||||||
|
.payment_method_billing_address_id
|
||||||
|
.clone();
|
||||||
|
|
||||||
let surcharge_amount = payment_data
|
let surcharge_amount = payment_data
|
||||||
.surcharge_details
|
.surcharge_details
|
||||||
@ -651,6 +657,7 @@ impl<F: Clone, Ctx: PaymentMethodRetrieve>
|
|||||||
surcharge_amount,
|
surcharge_amount,
|
||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id: None,
|
fingerprint_id: None,
|
||||||
|
payment_method_billing_address_id,
|
||||||
updated_by: storage_scheme.to_string(),
|
updated_by: storage_scheme.to_string(),
|
||||||
},
|
},
|
||||||
storage_scheme,
|
storage_scheme,
|
||||||
|
|||||||
@ -1377,6 +1377,7 @@ impl DataModelExt for PaymentAttemptUpdate {
|
|||||||
surcharge_amount,
|
surcharge_amount,
|
||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
|
payment_method_billing_address_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
} => DieselPaymentAttemptUpdate::Update {
|
} => DieselPaymentAttemptUpdate::Update {
|
||||||
amount,
|
amount,
|
||||||
@ -1394,6 +1395,7 @@ impl DataModelExt for PaymentAttemptUpdate {
|
|||||||
surcharge_amount,
|
surcharge_amount,
|
||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
|
payment_method_billing_address_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
},
|
},
|
||||||
Self::UpdateTrackers {
|
Self::UpdateTrackers {
|
||||||
@ -1697,6 +1699,7 @@ impl DataModelExt for PaymentAttemptUpdate {
|
|||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
|
payment_method_billing_address_id,
|
||||||
} => Self::Update {
|
} => Self::Update {
|
||||||
amount,
|
amount,
|
||||||
currency,
|
currency,
|
||||||
@ -1713,6 +1716,7 @@ impl DataModelExt for PaymentAttemptUpdate {
|
|||||||
surcharge_amount,
|
surcharge_amount,
|
||||||
tax_amount,
|
tax_amount,
|
||||||
fingerprint_id,
|
fingerprint_id,
|
||||||
|
payment_method_billing_address_id,
|
||||||
updated_by,
|
updated_by,
|
||||||
},
|
},
|
||||||
DieselPaymentAttemptUpdate::UpdateTrackers {
|
DieselPaymentAttemptUpdate::UpdateTrackers {
|
||||||
|
|||||||
Reference in New Issue
Block a user