Skip to content

v3.18.35 — Order idempotency key

Choose a tag to compare

@frisoftltd frisoftltd released this 19 Aug 09:47
· 11 commits to main since this release

Adds a client-generated idempotency key to dd_place_order, closing the duplicate-order risk on retry (nonce refresh, network retry, or near-simultaneous double-click) across IremboPay, PesaPal, generic online, and offline/COD. DB-level unique constraint is the real backstop for the race case. mtn_momo's flows untouched per scope. Two related gaps found and deliberately deferred: (1) a residual double-notification edge case on true simultaneous duplicate requests — one order row guaranteed, but side effects may fire twice; (2) ajax_momo_check_status()'s polling loop has its own independent duplicate-order risk via place_order(), unrelated to this fix's scope. Both tracked in CLAUDE.md. See RELEASE.md.