我们的应用程序是使用ExtJs创建的单页应用程序.对于任何用户操作,永远不会重新加载浏览器选项卡,并且使用ajax执行所有操作.用户可以在同一浏览器选项卡中打开/关闭多个ExtJs窗口/面板,这样一切都仍然局限于同一浏览器选项卡.
现在,我们需要在应用程序中集成支付网关,这涉及将用户重定向到银行网站并让她带回我们的应用程序.
问题是,当浏览器重定向用户时,所有应用程序javascript代码以及面板和窗口都会被销毁,当用户返回应用程序时,她发现它与她离开的应用程序不同.
作为解决方案,我们考虑使用以下两个appraoches:
选项1.维护应用程序的状态 – 当用户离开银行的网站时,我们会以某种方式维护应用程序的状态 – 比如哪些窗口打开了哪些数据,哪些变量具有哪些值等等.当用户返回时,我们生成她的申请状态相同.
选项2.为支付网关设置一个浏览器弹出窗口 – 我们打算提供一个按钮,打开一个包含交易详细信息的小弹出窗口,在此弹出窗口中将执行整个支付网关流程照顾重定向和一切.
事实证明,选项1非常麻烦和复杂,因为保持准确的状态是不可行的.
对于选项2,我们不确定这是否安全且可行?
有没有人提前实施过这种方法.否则,我们可以采取哪些其他选择?
在此先感谢您的帮助.
最佳答案
我遇到了问题,我在主应用程序中使用websocket / polling实现了它,同时弹出一个新窗口进行付款.
付款成功后,将通知主申请.
这样,每个付款都在自己的沙盒中运行,完全不受主应用程序的限制,这使得维护变得非常容易.请注意,我们的后端使用现有付款为每笔付款创建一个新会话.
我认为打开新的支付窗口并不罕见,这就是我决定这样做的原因.