The happy path is the smallest part of checkout
A production payment flow must account for delayed redirects, duplicate callbacks, provider timeouts, and customers who close the browser at the wrong moment.
Make order state explicit
Separate order creation, payment initiation, authorization, capture, failure, and refund. Every provider event should be safe to process more than once.
Design reconciliation before launch
Operations need a dependable way to compare provider records with internal orders and resolve exceptions without changing data by hand.
