Ответ
После успешной оплаты заказа в CQRS-архитектуре, где команды не должны возвращать данные, лучше всего:
- Использовать редирект на страницу успешной оплаты с параметром заказа:
// После успешного ответа от API оплаты
window.location.href = `/success?orderId=${orderId}`;
- На странице успеха запрашивать статус заказа через query:
// На странице /success
const orderId = new URLSearchParams(window.location.search).get('orderId');
fetch(`/api/orders/${orderId}`)
.then(response => response.json())
.then(showOrderDetails);
Это позволяет:
- Сохранить идемпотентность команд
- Не нарушать CQRS принципы
- Дать пользователю обратную связь
- Обработать возможные ошибки асинхронно