Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向到JSF中的支付gtateway集成_Jsf_Redirect - Fatal编程技术网

重定向到JSF中的支付gtateway集成

重定向到JSF中的支付gtateway集成,jsf,redirect,Jsf,Redirect,我需要从JSF应用程序连接到支付网关。我需要做到以下几点: (A) 需要发送带有所需参数的POST请求。Java控制器代码如下所示,它是从xhtml页面调用的 当用户点击“继续付款”按钮时,已创建付款对象 以上是不正确的,我需要发送参数到外部服务器,但上述将显示在浏览器的URL栏上的所有参数 (B) 另外,当支付网关服务器响应(成功支付或错误)时,我需要在“响应”中捕获它,并在XHTML页面上显示它 我知道,Servlet非常适合使用需求参数将其重定向到支付网关,并将响应存储在响应对象中,但

我需要从JSF应用程序连接到支付网关。我需要做到以下几点:

(A) 需要发送带有所需参数的POST请求。Java控制器代码如下所示,它是从xhtml页面调用的

当用户点击“继续付款”按钮时,已创建付款对象


以上是不正确的,我需要发送参数到外部服务器,但上述将显示在浏览器的URL栏上的所有参数

(B) 另外,当支付网关服务器响应(成功支付或错误)时,我需要在“响应”中捕获它,并在XHTML页面上显示它

我知道,Servlet非常适合使用需求参数将其重定向到支付网关,并将响应存储在响应对象中,但我不知道如何完成这一部分

请帮忙


谢谢大家!

这个明确的“支付网关”是如何相关的?执行commandButton后,您不是“只是”想将用户发送到外部站点吗?这个“servlet”是如何关联的?如果您从一般问题的角度考虑,您很可能会发现重复堆叠问题是支付网关集成。想看看是否有人做过类似的事情。但我明白你想说什么。很抱歉误解了这里的标签。如果您能指导我找到一个解决方案,它将非常有用。JSFbean中的解决方案与servlet中的解决方案没有什么不同。毕竟,这只是相同的Java代码。你真正的问题在这里得到了回答:@BalusC谢谢你,但我仍然不确定如何以更简单的方式实现这一点。我看过你的一篇文章,其中谈到在JSF中使用Javascript和隐藏表单字段传递post参数。我不知怎的失去了那个联系。使用我上面发布的代码,用户将被“重定向”到支付网关(重定向要求我传递参数,当前在浏览器的URL中可以看到这些参数。这是我想要避免的。),并且一旦用户支付,网关会将结果作为“响应”给出。我不知道如何捕捉这一切。请求帮助。当前形式的问题给人的印象是您希望以编程方式执行它(您大声说不希望在地址栏中看到URL,希望自己捕获整个响应)。我之前评论中的链接回答了这个问题。另一种方法是让webbrowser自己完成所有的艰苦工作,只需使用HTML表单或指向该URL的链接,这显然是您在另一篇文章中发现的。
public void paymentGateway() {
    ExternalContext externalContext=FacesContext.getCurrentInstance().getExternalContext();

    try {
        externalContext.redirect("https://test.payu.in/_payment?key="
                + this.key
                + "&txnid=1232132&amount="
                + payment.getTotalAmount()
                + "&productinfo="
                + payment.getItem().getName());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
<div class="form-group">
    <h:commandButton value="Proceed for Payment"
                     action="#{myController.paymentGateway}" 
                     styleClass="btn btn-submit" />
 </div>