From ff95557d2eaf3bae11ba51d8805f041207712b23 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Wed, 19 Aug 2026 10:00:41 +0200 Subject: [PATCH] Fix payment logic --- app/Http/Controllers/BtcPaymentController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Http/Controllers/BtcPaymentController.php b/app/Http/Controllers/BtcPaymentController.php index 584ead5a0..3f24e63ec 100644 --- a/app/Http/Controllers/BtcPaymentController.php +++ b/app/Http/Controllers/BtcPaymentController.php @@ -99,6 +99,15 @@ class BtcPaymentController extends BasePageController return response('Not Found', 404); } + + $existingPayment = Payment::query()->where('invoice_id', '=', $payload['invoiceId'])->first(); + if ($existingPayment === null) { + Log::channel('btc_payment')->error('InvoiceSettled webhook received but no payment recorded for invoice: '.$payload['invoiceId'].' (webhook: '.($payload['webhookId'] ?? 'unknown').', buyer: '.($payload['metadata']['buyerEmail'] ?? 'unknown').')'); + + return response('Not Found', 404); + } + + Log::channel('btc_payment')->info('Duplicate InvoiceSettled webhook for already settled invoice: '.$payload['invoiceId']); } return response('OK', 200);