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')
-