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.
This commit is contained in:
parent
431e5d936b
commit
aa477b129f
1 changed files with 5 additions and 1 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue