Я настраиваю сторону решения PunchOut.
https://punchoutcommerce.com/guides/punchout/cxml-punchout-setup-request/
Все работает нормально до фактического «Cart-PunchOut». (Создание PunchOutReguest, перенаправление в интернет-магазин продавцов, совершение покупок работает нормально) В моем PORequest есть URL-адрес, на который будет перенаправлен пользователь при нажатии «PunchOut Cart». В соответствии с реализацией продавец выполняет FORM POST с файлом cXML в скрытом поле ввода, например: https://punchoutcommerce.com/guides/punchout/cxml-punchout-order-message/#cart_transmission.
На моем postBack xPage я попробовал несколько разных решений, чтобы получить дескриптор HTML-кода FORM POST и обработать его в моем Java-компоненте. Но, кажется, ничего не работает!
Может ли кто-нибудь указать мне правильное направление, как обрабатывать входящую HTML-ФОРМУ POST на моем xPage?
Моя проблема НЕ в том, как декодировать строку cxml-base64 в моем bean-компоненте, моя проблема в том, как вообще получить данные формы в моем xPage и заполнить/создать экземпляр моего JavaBean, предпочтительно через ServerSideJavaScript.
После еще некоторого копания, чтобы убедиться, что я действительно получаю что-то взамен, я ясно вижу это в chrome DevTools Network Inspector:




Вы сможете получить доступ к полям формы, используя метод getRequestParameterValuesMap() на ExternalContext.
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
Map<String, String[]> inputFieldMap = ec.getRequestParameterValuesMap();
Я использую это в приложении, где поля формы берутся из формы, не созданной самим XPages.
Если вы хотите получить доступ к полям формы с помощью SSJS, посмотрите этот ответ.