fix: check if saved payment method and that in request are for the same customer (#260)

This commit is contained in:
Manoj Ghorela
2023-01-05 16:09:10 +05:30
committed by GitHub
parent 0e04341f80
commit 3c1406787e
12 changed files with 92 additions and 226 deletions

View File

@ -24,7 +24,6 @@ use super::{helpers, CustomerDetails, PaymentData};
use crate::{
core::errors::{self, CustomResult, RouterResult},
db::StorageInterface,
pii::Secret,
routes::AppState,
types::{
self,
@ -111,18 +110,9 @@ pub trait Domain<F: Clone, R>: Send + Sync {
async fn make_pm_data<'a>(
&'a self,
state: &'a AppState,
_payment_method: Option<enums::PaymentMethodType>,
txn_id: &str,
payment_attempt: &storage::PaymentAttempt,
request: &Option<api::PaymentMethod>,
token: &Option<String>,
card_cvc: Option<Secret<String>>,
payment_data: &mut PaymentData<F>,
storage_scheme: enums::MerchantStorageScheme,
) -> RouterResult<(
BoxedOperation<'a, F, R>,
Option<api::PaymentMethod>,
Option<String>,
)>;
) -> RouterResult<(BoxedOperation<'a, F, R>, Option<api::PaymentMethod>)>;
async fn add_task_to_process_tracker<'a>(
&'a self,
@ -212,29 +202,13 @@ where
async fn make_pm_data<'a>(
&'a self,
state: &'a AppState,
payment_method: Option<enums::PaymentMethodType>,
txn_id: &str,
payment_attempt: &storage::PaymentAttempt,
request: &Option<api::PaymentMethod>,
token: &Option<String>,
card_cvc: Option<Secret<String>>,
payment_data: &mut PaymentData<F>,
_storage_scheme: enums::MerchantStorageScheme,
) -> RouterResult<(
BoxedOperation<'a, F, api::PaymentsRetrieveRequest>,
Option<api::PaymentMethod>,
Option<String>,
)> {
helpers::make_pm_data(
Box::new(self),
state,
payment_method,
txn_id,
payment_attempt,
request,
token,
card_cvc,
)
.await
helpers::make_pm_data(Box::new(self), state, payment_data).await
}
}
@ -272,19 +246,13 @@ where
async fn make_pm_data<'a>(
&'a self,
_state: &'a AppState,
_payment_method: Option<enums::PaymentMethodType>,
_txn_id: &str,
_payment_attempt: &storage::PaymentAttempt,
_request: &Option<api::PaymentMethod>,
_token: &Option<String>,
_card_cvc: Option<Secret<String>>,
_payment_data: &mut PaymentData<F>,
_storage_scheme: enums::MerchantStorageScheme,
) -> RouterResult<(
BoxedOperation<'a, F, api::PaymentsCaptureRequest>,
Option<api::PaymentMethod>,
Option<String>,
)> {
Ok((Box::new(self), None, None))
Ok((Box::new(self), None))
}
async fn get_connector<'a>(
@ -332,19 +300,13 @@ where
async fn make_pm_data<'a>(
&'a self,
_state: &'a AppState,
_payment_method: Option<enums::PaymentMethodType>,
_txn_id: &str,
_payment_attempt: &storage::PaymentAttempt,
_request: &Option<api::PaymentMethod>,
_token: &Option<String>,
_card_cvc: Option<Secret<String>>,
_payment_data: &mut PaymentData<F>,
_storage_scheme: enums::MerchantStorageScheme,
) -> RouterResult<(
BoxedOperation<'a, F, api::PaymentsCancelRequest>,
Option<api::PaymentMethod>,
Option<String>,
)> {
Ok((Box::new(self), None, None))
Ok((Box::new(self), None))
}
async fn get_connector<'a>(