From aa477b129f9146cb9cd021d27c6fd2dea32f4541 Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Fri, 26 Sep 2025 13:16:58 -0400 Subject: [PATCH] Add STATUS_CONFIRMED_OVERPAID_REFUNDED to double payment detection Extended double payment detection to include the terminal overpaid refunded state. Now detects double/triple payments to all confirmed order states: - STATUS_CONFIRMED (payment complete) - STATUS_CONFIRMED_OVERPAID (payment complete but overpaid, refund pending) - STATUS_CONFIRMED_OVERPAID_REFUNDED (overpayment refund complete) This ensures that if customers send additional payments even after their overpayment has been refunded, the system will still detect and handle these correctly. --- make_post_sell/lib/crypto_watcher.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/make_post_sell/lib/crypto_watcher.py b/make_post_sell/lib/crypto_watcher.py index 6064c13..e1f7b8b 100644 --- a/make_post_sell/lib/crypto_watcher.py +++ b/make_post_sell/lib/crypto_watcher.py @@ -102,7 +102,11 @@ def _should_process_late_payment(payment, tx): return True # Edge Case 3 & 4: Double payment - payment already confirmed but more funds arrived - if payment.status in [CryptoPayment.STATUS_CONFIRMED, CryptoPayment.STATUS_CONFIRMED_OVERPAID] and payment.received_amount > 0: + if payment.status in [ + CryptoPayment.STATUS_CONFIRMED, + CryptoPayment.STATUS_CONFIRMED_OVERPAID, + CryptoPayment.STATUS_CONFIRMED_OVERPAID_REFUNDED + ] and payment.received_amount > 0: current_total = payment.received_amount + tx_amount logger.info(f"Double payment detected for {payment.status} payment {payment.id}: received {payment.received_amount}, new {tx_amount}, total {current_total}") if current_total > payment.expected_amount: