从JSF中的后台bean进行POS支付



我想实现对虚拟POS的POST调用,用于卡支付处理。POS只是银行提供的一个服务器程序,必须通过包含交易数据的表单进行访问。这可以通过组合表单、方法post和一组隐藏参数来实现,然后将输出定位到一个新窗口(这是必需的,因为从这一点开始,银行软件将控制)。但是,出于安全考虑,我想从一个后台bean发出POST调用。因此:

    我的facelets中的按钮调用RequestScoped bean中的方法。这个bean可以访问会话中的事务数据。
  1. 豆子会产生一些东西。
  2. 方法中,我可以打开一个URLConnection,添加参数,然后调用银行的程序(我假设它是一个servlet)。无论此servlet的输出是什么,都必须将其重定向到客户端的新窗口。这个新窗口将包含认证和真正的支付内容,但它是银行的软件。

使用JSF实现该行为的正确模式是什么?

我想我现在明白了,您想在JSF应用程序中集成银行servlet功能,但又不想为PCI遵从性而烦恼。

重定向是一个HTTP服务器响应代码,它指定了一个url来执行GET,所以你不能重定向表单POST的响应。

您也不想从服务器端以编程方式将此POST请求传递给银行servlet并呈现接收到的响应,因为您已经与银行servlet启动了一个单独的会话,而不是用户和web应用程序之间存在会话。这实际上是一个严重的安全问题。

您不能通过JSF启动此Bank Servlet会话,除非服务器正在处理与银行Servlet的所有HTTP通信。

在您的场景中,我将使用Javascript打开一个带有常规HTML表单的新窗口,并将表单的操作设置为银行servlet URL,并使该表单的初始输入与HTTP帖子所需的参数名称匹配。当提交此HTML表单时,SSL证书将与用户浏览器协商,POST响应将在没有任何web应用程序参与的情况下呈现。客户端将维护两个独立的会话,一个用于您的应用程序,另一个用于Bank Servlet。

这是一种安全的方法,不会对您的web应用程序提出任何PCI合规性要求。

相关内容

  • 没有找到相关文章

最新更新