Trạng thái thanh toán & Idempotency
Quy tắc: một khoản thanh toán là một state machine kèm idempotency key, không bao giờ là một
Provider thanh toán & Webhook
Quy tắc: response của provider và webhook là tín hiệu từ bên ngoài, không phải sự thật. Nguồn
Nhất quán giữa đơn hàng & thanh toán
Quy tắc: tiền đã chuyển và đơn hàng đã cập nhật là hai sự thật nằm ở hai nơi, và không có
Sổ cái thanh toán
Quy tắc: trạng thái thanh toán cho biết giao dịch có thành công hay không; chỉ sổ cái mới cho biết
Hoàn tiền
Quy tắc: hoàn tiền là một giao dịch mới, không phải thao tác undo. Nó có state machine riêng,
Đối soát
Quy tắc: đối soát là một nguồn thay đổi chính danh, không phải một bản vá âm thầm. Mọi lần sửa
Phát hiện gian lận
Quy tắc: hợp lệ về mặt kỹ thuật không đồng nghĩa với đáng tin, và chặn quá tay còn tốn kém hơn cả
Quyết toán
Quy tắc: "thanh toán thành công" chỉ là một ý định; quyết toán mới là lúc tiền thực sự về. Coi