From ed27b0c61d22df0b72fd1ce4eae7e7a2fea4a5e3 Mon Sep 17 00:00:00 2001 From: Sangamesh Kulkarni <59434228+Sangamesh26@users.noreply.github.com> Date: Wed, 28 Dec 2022 13:50:19 +0530 Subject: [PATCH] fix: requires payment method data for paypal (#248) --- .../src/core/payments/operations/payment_confirm.rs | 12 +++++++----- .../src/core/payments/operations/payment_create.rs | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/crates/router/src/core/payments/operations/payment_confirm.rs b/crates/router/src/core/payments/operations/payment_confirm.rs index e92bd7cafe..3de10cc9ad 100644 --- a/crates/router/src/core/payments/operations/payment_confirm.rs +++ b/crates/router/src/core/payments/operations/payment_confirm.rs @@ -211,7 +211,7 @@ impl Domain for PaymentConfirm { Option, Option, )> { - let (op, payment_method, payment_token) = helpers::make_pm_data( + let (op, payment_method_data, payment_token) = helpers::make_pm_data( Box::new(self), state, payment_method, @@ -223,11 +223,13 @@ impl Domain for PaymentConfirm { ) .await?; - utils::when(payment_method.is_none(), || { - Err(errors::ApiErrorResponse::PaymentMethodNotFound) - })?; + if payment_method != Some(enums::PaymentMethodType::Paypal) { + utils::when(payment_method_data.is_none(), || { + Err(errors::ApiErrorResponse::PaymentMethodNotFound) + })?; + } - Ok((op, payment_method, payment_token)) + Ok((op, payment_method_data, payment_token)) } #[instrument(skip_all)] diff --git a/crates/router/src/core/payments/operations/payment_create.rs b/crates/router/src/core/payments/operations/payment_create.rs index 357416fe2b..068cb5ac29 100644 --- a/crates/router/src/core/payments/operations/payment_create.rs +++ b/crates/router/src/core/payments/operations/payment_create.rs @@ -407,7 +407,9 @@ impl ValidateRequest for PaymentCreate None => None, }; - if let Some(true) = request.confirm { + if request.confirm == Some(true) + && request.payment_method != Some(api_models::enums::PaymentMethodType::Paypal) + { helpers::validate_pm_or_token_given( &request.payment_token, &request.payment_method_data,