From 800025bf5df5a2caf3e7fe593ab02f3128804f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Fri, 13 Aug 2021 07:53:00 +0200 Subject: [PATCH 1/2] Add sleep(2) to allow the app to catch up with speed of webhooks --- app/PaymentDrivers/MolliePaymentDriver.php | 3 +++ app/PaymentDrivers/StripePaymentDriver.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/app/PaymentDrivers/MolliePaymentDriver.php b/app/PaymentDrivers/MolliePaymentDriver.php index 777f5d9e3c4e..1bffcca72cdf 100644 --- a/app/PaymentDrivers/MolliePaymentDriver.php +++ b/app/PaymentDrivers/MolliePaymentDriver.php @@ -273,6 +273,9 @@ class MolliePaymentDriver extends BaseDriver public function processWebhookRequest(PaymentWebhookRequest $request) { + // Allow app to catch up with webhook request. + sleep(2); + $validator = Validator::make($request->all(), [ 'id' => ['required', 'starts_with:tr'], ]); diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index 82d45ce1490d..9f813dfef305 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -390,6 +390,9 @@ class StripePaymentDriver extends BaseDriver public function processWebhookRequest(PaymentWebhookRequest $request) { + // Allow app to catch up with webhook request. + sleep(2); + if ($request->type === 'charge.succeeded' || $request->type === 'source.chargeable') { foreach ($request->data as $transaction) { $payment = Payment::query() From 7e520fff8afdacb653620e139706475493af80a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Fri, 13 Aug 2021 07:56:41 +0200 Subject: [PATCH 2/2] Unless payment status is paid, make it pending --- app/PaymentDrivers/Mollie/CreditCard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/PaymentDrivers/Mollie/CreditCard.php b/app/PaymentDrivers/Mollie/CreditCard.php index cb6fa475b6d1..f8f5f57f9cdb 100644 --- a/app/PaymentDrivers/Mollie/CreditCard.php +++ b/app/PaymentDrivers/Mollie/CreditCard.php @@ -180,7 +180,7 @@ class CreditCard 'transaction_reference' => $payment->id, ]; - $payment_record = $this->mollie->createPayment($data, Payment::STATUS_COMPLETED); + $payment_record = $this->mollie->createPayment($data, $payment->status === 'paid' ? Payment::STATUS_COMPLETED : Payment::STATUS_PENDING); SystemLogger::dispatch( ['response' => $payment, 'data' => $data],