Как вернуться на главную страницу после совершения платежа через PayBox с помощью VAADIN? - PullRequest
0 голосов
/ 05 ноября 2018

Я хотел бы вернуться на свою главную страницу после оплаты. У меня есть возвращаемый параметр в моем URL, который равен нулю, пока я не зашел на сайт оплаты, и я не проверил свой платеж. После оплаты, поэтому ненулевой возвратный параметр (например: http://localhost:8080/app0/#!retour?retour=APP:337:2:/QSYS.LIB/CMT31.LIB/PAMWTRCL8.PGM&mt=3000&code=00000&key=krE0CVCuH%2FQ1fw2iOEIt6xYVqdmcUjiUNg2n9oSHcL2UkaE7N5WyzargWQS85u7IKNH6m38zuN3qXcx42KqEfXIiem1MHyfdQdamqzKfCP25Jwze7PPhGBjXSzO4JkKi2Pp2w573XKAwBFMkuaLcBeFb3Uq1qvWyRumYdk89Sro%3D), Я хотел бы вернуться на мою главную страницу. Моя проблема в том, что этот параметр не равен нулю, поэтому я не могу вернуться на главную страницу. Мое решение было бы использовать фрагменты, но я не знаю, как это сделать. Не могли бы вы помочь мне.

protected void init(VaadinRequest vaadinRequest) {
    String retour=(String) vaadinRequest.getParameter("retour");
    if(retour!=null) {
        String mt=(String) vaadinRequest.getParameter("mt");
        String code=(String) vaadinRequest.getParameter("code");
        String key=(String) vaadinRequest.getParameter("key");
        traiteRetourPaiement(retour, mt, code, key);
    } else {
        String nomApp = getNomApp(vaadinRequest);
        setContent(new DynamicView(nomApp));
    }
}

1 Ответ

0 голосов
/ 07 ноября 2018

В вашем примере параметры находятся во фрагментной части URI, то есть после символа #. Эта часть URI доступна через getPage().getLocation().getFragment(), но только в виде длинной строки и не разбивается на отдельные параметры.

Кроме того, вы можете изменить способ создания URI возврата PayBox, чтобы в нем не было символа #. В этом случае значения будут доступны как обычные параметры запроса так, как ваш пример кода пытается получить к ним доступ.

...