# Feature task: verify the checkout payment flow

## Outcome

A signed-in user can complete a test payment from the checkout page and receives
an order number. A declined payment leaves the cart recoverable.

## In scope

- Checkout `Pay now` interaction
- Payment adapter invocation
- Provider test redirect or embedded test flow
- Success, decline, and retry states
- Duplicate-submission protection

## Non-goals

- Refunds
- Subscription billing
- Production payment credentials
- Changes to unrelated checkout design

## Acceptance criteria

1. Clicking `Pay now` opens the configured provider test flow exactly once.
2. A successful test payment returns to a confirmation with an order number.
3. A declined payment displays a useful error and preserves the cart.
4. Repeated clicks do not create duplicate payment attempts or orders.
5. No unexpected console error or failed network request occurs.

## Required evidence

- Production build result
- Relevant unit or integration test result
- Browser test trace or exact manual steps
- Success-state screenshot
- Decline-state screenshot or test artifact
- Console and network inspection result

## Stop conditions

Stop and request direction if the task requires production credentials,
customer data, a billing contract change, or a destructive database action.

## Completion report

- Acceptance criterion 1: [pass or fail, with evidence]
- Acceptance criterion 2: [pass or fail, with evidence]
- Acceptance criterion 3: [pass or fail, with evidence]
- Acceptance criterion 4: [pass or fail, with evidence]
- Acceptance criterion 5: [pass or fail, with evidence]
- Checks not run: [list and reason]
