From 0777c6e43c17434b9de8bb7c4d81c37592de0a6e Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 13 Aug 2024 15:14:41 +1000 Subject: [PATCH] Extend webhook delay for mollie --- app/PaymentDrivers/BraintreePaymentDriver.php | 3 ++- app/PaymentDrivers/CheckoutCom/CreditCard.php | 7 ++++++- app/PaymentDrivers/CheckoutComPaymentDriver.php | 6 ++++-- app/PaymentDrivers/GoCardlessPaymentDriver.php | 5 +++-- app/PaymentDrivers/MolliePaymentDriver.php | 10 +++++++--- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/app/PaymentDrivers/BraintreePaymentDriver.php b/app/PaymentDrivers/BraintreePaymentDriver.php index 2e95394fe56e..3e13d9c87f17 100644 --- a/app/PaymentDrivers/BraintreePaymentDriver.php +++ b/app/PaymentDrivers/BraintreePaymentDriver.php @@ -241,7 +241,6 @@ class BraintreePaymentDriver extends BaseDriver ]); if ($result->success) { - $this->confirmGatewayFee(); $data = [ 'payment_type' => PaymentType::parseCardType(strtolower($result->transaction->creditCard['cardType'])), @@ -249,6 +248,8 @@ class BraintreePaymentDriver extends BaseDriver 'transaction_reference' => $result->transaction->id, 'gateway_type_id' => GatewayType::CREDIT_CARD, ]; + + $this->confirmGatewayFee($data); $payment = $this->createPayment($data, Payment::STATUS_COMPLETED); diff --git a/app/PaymentDrivers/CheckoutCom/CreditCard.php b/app/PaymentDrivers/CheckoutCom/CreditCard.php index feee99b93ad8..c19acab18e6d 100644 --- a/app/PaymentDrivers/CheckoutCom/CreditCard.php +++ b/app/PaymentDrivers/CheckoutCom/CreditCard.php @@ -242,7 +242,12 @@ class CreditCard implements MethodInterface } if ($response['status'] == 'Pending') { - $this->checkout->confirmGatewayFee(); + + $data = [ + 'gateway_type_id' => GatewayType::CREDIT_CARD, + ]; + + $this->checkout->confirmGatewayFee($data); return $this->processPendingPayment($response); } diff --git a/app/PaymentDrivers/CheckoutComPaymentDriver.php b/app/PaymentDrivers/CheckoutComPaymentDriver.php index b90ce372264d..12dd66244f8d 100644 --- a/app/PaymentDrivers/CheckoutComPaymentDriver.php +++ b/app/PaymentDrivers/CheckoutComPaymentDriver.php @@ -406,15 +406,17 @@ class CheckoutComPaymentDriver extends BaseDriver $response = $this->gateway->getPaymentsClient()->requestPayment($paymentRequest); if ($response['status'] == 'Authorized') { - $this->confirmGatewayFee($request); - + $data = [ 'payment_method' => $response['source']['id'], 'payment_type' => PaymentType::parseCardType(strtolower($response['source']['scheme'])), 'amount' => $amount, 'transaction_reference' => $response['id'], + 'gateway_type_id' => GatewayType::CREDIT_CARD, ]; + $this->confirmGatewayFee($data); + $payment = $this->createPayment($data, Payment::STATUS_COMPLETED); SystemLogger::dispatch( diff --git a/app/PaymentDrivers/GoCardlessPaymentDriver.php b/app/PaymentDrivers/GoCardlessPaymentDriver.php index 6985ac144f9d..67dce0892ed8 100644 --- a/app/PaymentDrivers/GoCardlessPaymentDriver.php +++ b/app/PaymentDrivers/GoCardlessPaymentDriver.php @@ -165,8 +165,7 @@ class GoCardlessPaymentDriver extends BaseDriver ]); if (in_array($payment->status, ['submitted', 'pending_submission'])) { - $this->confirmGatewayFee(); - + $data = [ 'payment_method' => $cgt->hashed_id, 'payment_type' => PaymentType::ACH, @@ -175,6 +174,8 @@ class GoCardlessPaymentDriver extends BaseDriver 'gateway_type_id' => GatewayType::BANK_TRANSFER, ]; + $this->confirmGatewayFee($data); + $payment = $this->createPayment($data, Payment::STATUS_PENDING); SystemLogger::dispatch( diff --git a/app/PaymentDrivers/MolliePaymentDriver.php b/app/PaymentDrivers/MolliePaymentDriver.php index d2fd97d53fec..d35e8d158e08 100644 --- a/app/PaymentDrivers/MolliePaymentDriver.php +++ b/app/PaymentDrivers/MolliePaymentDriver.php @@ -171,7 +171,7 @@ class MolliePaymentDriver extends BaseDriver ]; } catch (ApiException $e) { SystemLogger::dispatch( - ['server_response' => $refund, 'data' => request()->all()], + ['server_response' => $e->getMessage(), 'data' => request()->all()], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, SystemLog::TYPE_MOLLIE, @@ -223,7 +223,7 @@ class MolliePaymentDriver extends BaseDriver ]); if ($payment->status === 'paid') { - $this->confirmGatewayFee($request); + $data = [ 'payment_method' => $cgt->token, @@ -233,6 +233,8 @@ class MolliePaymentDriver extends BaseDriver 'gateway_type_id' => GatewayType::CREDIT_CARD, ]; + $this->confirmGatewayFee($data); + $payment = $this->createPayment($data, Payment::STATUS_COMPLETED); SystemLogger::dispatch( @@ -284,7 +286,7 @@ class MolliePaymentDriver extends BaseDriver public function processWebhookRequest(PaymentWebhookRequest $request) { // Allow app to catch up with webhook request. - sleep(2); + sleep(4); $validator = Validator::make($request->all(), [ 'id' => ['required', 'starts_with:tr'], @@ -335,6 +337,8 @@ class MolliePaymentDriver extends BaseDriver 'transaction_reference' => $payment->id, ]; + $this->confirmGatewayFee($data); + $record = $this->createPayment( $data, $codes[$payment->status]