🟢 Пользователи:
+ Пользователь-покупатель.
🟢 Системы:
+ Frontend TravelGA (веб- или мобильное приложение)
+ Backend TravelGA
+ БД TravelGA
+ Интернет-эквайринг от ВТБ
🟢 Основной сценарий:
1. Пользователь заполняет
+ ФИ,
+ телефон,
на экране заказа.
2. Нажимает «Оплатить».
3. Frontend проверяет данные и отправляет запрос
POST /orders/{orderId}/payments
на Backend.
4. Backend проверяет формат, статус заказа (должен быть "new") и отправляет запрос в ВТБ:
POST /payment/rest/register.do
5. ВТБ возвращает orderId и formUrl.
6. Backend сохраняет их в БД и обновляет статус заказа на pending.
7. Backend передаёт formUrl на Frontend.
8. Frontend делает редирект пользователя на платёжную форму ВТБ.
9. Пользователь вводит данные карты на стороне ВТБ и производит оплату.
10. После оплаты:
+ ВТБ шлёт Webhook в Backend.
+ Frontend вызывает GET /orders/{orderId}/payment Backend-а, чтобы получить статус.
11А. Если оплата успешна:
+ Пользователю показывается экран с кнопкой «Скачать билеты (PDF)».
+ В RabbitMQ публикуется событие в очередь email-notifications.
11Б. Если ошибка — предлагается повторить оплату или вернуться к редактированию заказа.
🟢 А ещё есть альтернативные сценарии и ошибки.
🟢 И дополняющая сценарий UML Sequence диаграмма.
Предварительные шаги, которые помогли в создании Use Case и понимании процесса интерации:
🔗 Анализ API-документации ВТБ
🔗 Исследовательское тестирование API ВТБ
🔗 Архитектура проекта для понимания цепочки запросов
🔗 Примеры интеграционных Use Case
🔗 UML Sequence
Оформленный документ с исходным кодом PlantUML прикреплен к посту.
Коллекция примеров интеграционных Use Case от GetAnalyst пополнена ✅
#ИнтеграцииGA #vtbAPI