Skip to main content

Wallet token debit

What the code does​

WalletListener.handleOrderConfirmed catches the error, logs Failed to deduct token…, and rethrows.

What the comment says​

The order is already committed, log the failure, and do not rethrow. The order stays confirmed regardless of balance.

Which one runs​

The throw. The outbox retries the debit. The order is already confirmed either way, because the debit is not inside the confirm transaction.

Idempotency​

Unknown. If deductToken commits the ledger row and then throws, the retry can insert a second debit unless a unique key rejects it. That unique key was not proven.

What a token is​

Unknown. The method name is deductToken. The repository does not state a price, a refund rule, or whether this is a platform fee versus a prepaid balance. It is not, by itself, a Razorpay charge. Razorpay is used for payment intents and WhatsApp checkout.

Error handling.