From 133c49595fcbdbc8b3d1ecda9d9c09a5323ff506 Mon Sep 17 00:00:00 2001 From: Lars Kusch Date: Mon, 16 Jan 2023 21:46:23 +0100 Subject: [PATCH] Fixes for webhook --- app/PaymentDrivers/StripePaymentDriver.php | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/app/PaymentDrivers/StripePaymentDriver.php b/app/PaymentDrivers/StripePaymentDriver.php index 169e6cb14e3f..4067fbff22e5 100644 --- a/app/PaymentDrivers/StripePaymentDriver.php +++ b/app/PaymentDrivers/StripePaymentDriver.php @@ -737,18 +737,23 @@ class StripePaymentDriver extends BaseDriver $customer = $this->findOrCreateCustomer(); $this->attach($setup_intent->payment_method, $customer); $payment_method = $this->getStripePaymentMethod($setup_intent->payment_method); - $payment_meta = new \stdClass; - $payment_meta->brand = (string) $payment_method->bacs_debit->sort_code; - $payment_meta->last4 = (string) $payment_method->bacs_debit->last4; - $payment_meta->state = 'unauthorized'; - $payment_meta->type = GatewayType::BACS; + $clientgateway = ClientGatewayToken::query() + ->where('token', $payment_method) + ->first(); + if (!$clientgateway){ + $payment_meta = new \stdClass; + $payment_meta->brand = (string) $payment_method->bacs_debit->sort_code; + $payment_meta->last4 = (string) $payment_method->bacs_debit->last4; + $payment_meta->state = 'unauthorized'; + $payment_meta->type = GatewayType::BACS; - $data = [ - 'payment_meta' => $payment_meta, - 'token' => $payment_method->id, - 'payment_method_id' => GatewayType::BACS, - ]; - $this->storeGatewayToken($data, ['gateway_customer_reference' => $customer->id]); + $data = [ + 'payment_meta' => $payment_meta, + 'token' => $payment_method->id, + 'payment_method_id' => GatewayType::BACS, + ]; + $this->storeGatewayToken($data, ['gateway_customer_reference' => $customer->id]); + } return response()->json([], 200); } elseif ($request->type === "mandate.updated"){ // Check if payment method BACS is still valid