Aglet

How to verify payment retry and duplicate charge protection

Verification should prove that every payment outcome presents one safe next action and that repeated submission cannot create contradictory orders or charges. Use controlled payment fixtures or a test harness, never real credentials, and assert both the customer-facing state and persisted records.

Check whether the outcome improved

  1. Exercise outcome states

    Cover explicit decline, validation failure, controlled timeout, delayed success, pending status, and confirmed success. Assert the message, retry availability, order state, payment state, and correlation identifier. Keep the expected state table beside each fixture.

  2. Repeat interruption paths

    Refresh, close and reopen the checkout, navigate back, submit twice rapidly, and retry after a delayed result. Confirm idempotent behavior, a status lookup or explicit hold, and no second order when the first attempt eventually succeeds.

  3. Audit records

    Compare payment and order records for every fixture, including an unpaid failure and a paid-without-order simulation. Verify sensitive values stay out of logs and screenshots. Mark any path that requires an unavailable external status as unverified rather than green.

What to carry forward

Accept only when each controlled outcome has a truthful recovery action and repeated submission preserves one order and one payment state. Mark external-status cases partial when the harness cannot prove them, and keep the unresolved risk attached to the work record.

Keep the decision with the work.

Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.

Create an account See the product workflow