Перейти к содержанию

A. Payment processing

Раздел 05

Тип материала — инженерный 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. Локальные результаты приведены отдельно. Практические примеры