Я разрабатываю приложение для бронирования с использованием Angular 6. Я обертываю приложение Angular внутри приложения Spring MCV для обеспечения безопасности и развертывания в качестве WAR.
В этом приложении я размещаю сообщения на платежном шлюзе(PG) для обработки платежей.Затем PG отправляет обратно к указанному контроллеру в моем приложении Spring (/ booking / Подтвердить).Затем я выполняю некоторую обработку и проверку данных POST и перенаправляю на другой контроллер, который отображает страницу бронирования моего приложения Angular.
@Controller
public class ApplicationController {
// this controller will load the angular app's index.html,
// and the angular app will handle necessary routing internally
@RequestMapping(path = {
"/",
"/search/**",
"/reserve/**",
"/booking/**"
})
public String index() {
return "forward:/index.html";
}
// this controller will handle payment gateway's callback,
// do necessary validations and processing
// and finally redirect to the angular app's booking page (using the above controller)
@RequestMapping(path = "/booking/confirm", method = RequestMethod.POST)
public String verifyPayment(HttpServletRequest request, HttpServletResponse response, RedirectAttributes attributes) throws IOException
{
// process POST data
String paymentStatusMessage = request.getParameter("statusMessage");
String bookingId = request.getParameter("orderId");
// todo: bind paymentStatusMessage and bookingId to outgoing response somehow
return "redirect:/booking";
}
}
Мне нужно отобразить сообщение о состоянии платежа и загрузитьбронирование с использованием идентификатора бронирования.Для этого мне нужно отправить сообщение о статусе платежа и идентификатор бронирования обратно на угловую страницу.
Я пробовал следующие два метода.Но оба они не чувствуют себя хорошо IMO.
- Установите два куки с необходимыми данными и удалите их после чтения их из приложения Angular.
- Установите параметры запроса для перенаправления,
return "redirect:/booking?s=" + paymentStatusMessage + "&b=" + bookingId
(который будет выглядеть примерно так в браузере /booking?status=Payment+Successful&b=1254445
)
Какова общая практика для достижения такого типа поведения?
Заранее спасибо.