5

我们的应用程序是使用 ExtJs 创建的单页应用程序。对于任何用户操作,浏览器选项卡永远不会重新加载,并且所有操作都使用 ajax 执行。用户可以在同一个浏览器选项卡中打开/关闭多个 ExtJs 窗口/面板,这样一切都被限制在同一个浏览器选项卡中。

现在,我们需要在应用程序中集成支付网关,这包括将用户重定向到银行网站并将她带回我们的应用程序。

问题是,当浏览器重定向用户时,所有应用程序的 javascript 代码以及面板和窗口都会被破坏,当用户返回应用程序时,她会发现它与她离开的应用程序不同。

作为对此的解决方案,我们正在考虑使用以下两种方法:

选项 1. 维护应用程序的状态- 当用户离开银行的网站时,我们会以某种方式维护应用程序的状态 - 比如打开哪些窗口携带哪些数据,哪些变量具有哪些值等。当用户返回时,我们生成对她来说同样的应用状态。

选项 2. 有一个支付网关的浏览器弹出窗口- 我们打算提供一个按钮,该按钮将打开一个带有交易详细信息的小弹出窗口,在这个弹出窗口中,整个支付网关过程将发生在关心重定向和一切。

选项 1 被证明是非常麻烦和复杂的,因为保持准确的状态是不可行的。

对于选项 2,我们不确定这是否安全可行?

有没有人更早实施过这种方法。否则,我们可以选择的其他选择是什么?

感谢您提前提供任何帮助。

4

1 回答 1

4

我遇到了这个问题,我在主应用程序中使用 websocket/polling 实现了它,同时弹出一个新的支付窗口。

支付成功后会通知主应用。

这样,每笔付款都在自己的沙箱中运行,完全不受主应用程序的约束,这使得维护非常容易。请注意,我们的后端使用现有会话为每次付款创建一个新会话。

我认为打开新的付款窗口并不少见,这就是我决定这样做的原因。

于 2013-06-03T09:47:23.547 回答