From fd0e4d75ff8875fbe1ecd6cbee1d574798cbcf63 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 23 Jul 2023 12:43:23 +1000 Subject: [PATCH] Complete payment rest API --- app/PaymentDrivers/PayPalRestPaymentDriver.php | 18 ++++++++++++++++-- .../ninja2020/gateways/paypal/pay.blade.php | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/PaymentDrivers/PayPalRestPaymentDriver.php b/app/PaymentDrivers/PayPalRestPaymentDriver.php index 1157554cef8a..6e257c8e715b 100644 --- a/app/PaymentDrivers/PayPalRestPaymentDriver.php +++ b/app/PaymentDrivers/PayPalRestPaymentDriver.php @@ -87,6 +87,9 @@ class PayPalRestPaymentDriver extends BaseDriver public function setPaymentMethod($payment_method_id) { + if(!$payment_method_id) + return $this; + $this->paypal_payment_method = $this->funding_options[$payment_method_id]; return $this; @@ -161,10 +164,10 @@ class PayPalRestPaymentDriver extends BaseDriver public function processPaymentResponse($request) { - + $response = json_decode($request['gateway_response'], true); - if($response['status'] == 'COMPLETED'){ + if($response['status'] == 'COMPLETED' && isset($response['purchase_units'])){ $data = [ 'payment_type' => PaymentType::PAYPAL, @@ -188,6 +191,17 @@ class PayPalRestPaymentDriver extends BaseDriver } else { + + SystemLogger::dispatch( + ['response' => $response], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_FAILURE, + SystemLog::TYPE_PAYPAL, + $this->client, + $this->client->company, + ); + + throw new PaymentFailed('Payment failed. Please try again.', 401); } } diff --git a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php index ab2b5e5026f1..3c7cd18d0a5c 100644 --- a/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php +++ b/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php @@ -28,7 +28,7 @@ @endsection @push('footer') -