A. Payment processing¶
Тип материала — инженерный walkthrough. HYPOTHETICAL — все операции, схемы и учебные числа.
Компоненты и границы¶
flowchart LR
A["Merchant"] --> B["Payment orchestrator"] --> C["PSP"] --> D["Ledger and reconciliation"]
Нормальная последовательность¶
Создать attempt с ключом K1. PSP возвращает authorization reference. Capture использует K2 и ссылку на authorization. В ledger признать capture по accounting policy. Settlement file и выписка закрывают receivable.
sequenceDiagram
participant A as Merchant
participant B as Payment orchestrator
participant C as PSP
participant D as Ledger and reconciliation
A->>B: Supply stable input
B->>C: Authorize then capture
C-->>B: Return recorded evidence
B->>D: Advance downstream work
Отказ и восстановление¶
У PSP capture выполнен, ACK потерян. Локальный attempt PENDING. Duplicate request возвращает ту же попытку. Webhook проверяется по подписи и сохраняется с inbox ID. При другом webhook ID для того же capture срабатывает guard provider operation ID.
sequenceDiagram
participant B as Payment orchestrator
participant C as PSP
participant R as Recovery owner
B->>C: Begin operation
Note over B,C: Capture committed, ACK lost
R->>C: Lookup same capture and reconcile
C-->>R: Record verified outcome
Контроль завершения¶
Сопоставить captured gross, fees и net с PSP report, затем net с cash. Не повторять capture с новым ключом до разрешения исхода.
Интеграционный прогон сценария имеет статус NOT_RUN. Локальные результаты приведены отдельно. Практические примеры