From eef4ab65fba853346d186d45fa87288327f6e4eb Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 19 Oct 2017 12:11:39 +0300 Subject: [PATCH] Don't apply webhooks to deleted invoices/payments --- .../PaymentDrivers/GoCardlessV2RedirectPaymentDriver.php | 4 ++++ app/Ninja/PaymentDrivers/StripePaymentDriver.php | 4 ++++ app/Ninja/PaymentDrivers/WePayPaymentDriver.php | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/app/Ninja/PaymentDrivers/GoCardlessV2RedirectPaymentDriver.php b/app/Ninja/PaymentDrivers/GoCardlessV2RedirectPaymentDriver.php index 0fd71fa0d5e2..20cf6a82971b 100644 --- a/app/Ninja/PaymentDrivers/GoCardlessV2RedirectPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/GoCardlessV2RedirectPaymentDriver.php @@ -112,6 +112,10 @@ class GoCardlessV2RedirectPaymentDriver extends BasePaymentDriver continue; } + if ($payment->is_deleted || $payment->invoice->is_deleted) { + continue; + } + if ($action == 'failed' || $action == 'charged_back') { if (! $payment->isFailed()) { $payment->markFailed($event['details']['description']); diff --git a/app/Ninja/PaymentDrivers/StripePaymentDriver.php b/app/Ninja/PaymentDrivers/StripePaymentDriver.php index 0584fb64b23f..31baed37edd7 100644 --- a/app/Ninja/PaymentDrivers/StripePaymentDriver.php +++ b/app/Ninja/PaymentDrivers/StripePaymentDriver.php @@ -474,6 +474,10 @@ class StripePaymentDriver extends BasePaymentDriver return false; } + if ($payment->is_deleted || $payment->invoice->is_deleted) { + return false; + } + if ($eventType == 'charge.failed') { if (! $payment->isFailed()) { $payment->markFailed($source['failure_message']); diff --git a/app/Ninja/PaymentDrivers/WePayPaymentDriver.php b/app/Ninja/PaymentDrivers/WePayPaymentDriver.php index 838b63439877..7f9f7c0d9324 100644 --- a/app/Ninja/PaymentDrivers/WePayPaymentDriver.php +++ b/app/Ninja/PaymentDrivers/WePayPaymentDriver.php @@ -276,6 +276,10 @@ class WePayPaymentDriver extends BasePaymentDriver throw new Exception('Unknown payment'); } + if ($payment->is_deleted || $payment->invoice->is_deleted) { + throw new Exception('Payment is deleted'); + } + $wepay = Utils::setupWePay($accountGateway); $checkout = $wepay->request('checkout', [ 'checkout_id' => intval($objectId),