Как передать данные на угловую страницу из контейнера Spring приложения? - PullRequest
0 голосов
/ 04 декабря 2018

Я разрабатываю приложение для бронирования с использованием 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.

  1. Установите два куки с необходимыми данными и удалите их после чтения их из приложения Angular.
  2. Установите параметры запроса для перенаправления, return "redirect:/booking?s=" + paymentStatusMessage + "&b=" + bookingId (который будет выглядеть примерно так в браузере /booking?status=Payment+Successful&b=1254445)

Какова общая практика для достижения такого типа поведения?

Заранее спасибо.

...