Интеграция с ЮKassa
Общий порядок проведения оплаты:
-
UI отправляет сервису payment-orchestration:
-
цена,
-
валюта,
-
информация о заказе (ID и т.д.).
-
ссылка на страницу завершения оплаты.
-
-
Сервис payment-orchestration отправляет в ЮKassa запрос, который содержит:
-
информация из предыдущего шага,
-
данные из конфигурации (ключи магазина, ссылка на страницу завершения оплаты),
-
генерируемый ключ идемпотентности.
-
-
ЮKassa возвращает сервису payment-orchestration данные о платеже и ссылку на страницу оплаты.
-
Сервис payment-orchestration сохраняет полученный платёж c помощью сервиса payment.
-
Сервис payment-orchestration возвращает UI ссылку на страницу (нужно хранить на стороне фронтенд) оплаты и ID платежа.
-
UI преходит по ссылке страницы оплаты, полученной на предыдущем шаге.
-
По завершению оплаты на UI происходит переход по ссылке завершения оплаты, отправленной на шаге 2.
-
UI отправляет сервису payment-orchestration запрос c ранее сохраненным ID по статусу платежа.
-
Сервис payment-orchestration отправляет в ЮKassa запрос по платежу с полученным от UI ID.
-
ЮKassa возвращает сервису payment-orchestration данные о платеже по указанному ID
* возможно результат платежа может быть актуальным только спустя некоторое время, возможно стоит предусмотреть запрос статуса платежей по расписанию. -
Сервис payment-orchestration обновляет платёж c помощью сервиса payment.
-
Сервис payment-orchestration обновляет статус заказа c помощью сервиса order.
-
Сервис payment-orchestration отправляет на UI по платежу для уведомления пользователя.

Общая схема взаимодействия компонентов