使用window.open完成付款

时间:2019-01-24 04:31:46

标签: javascript reactjs dom iframe

我正在使用付款处理器,该处理器为我提供了一个将用户发送到的URL。我可以指定在付款后将用户重定向到的success_url,cancel_url参数。问题是,我的应用程序是React应用程序,我不想重新加载页面。我想创建一个流程,在该流程中,将使用window.open打开付款页面的网址,然后从React应用程序中,我可以使用window.postMessage跟踪付款的状态。是这种情况下正确的方法吗?

1 个答案:

答案 0 :(得分:1)

只要后处理URL与打开程序窗口位于同一域,这样的声音就应该可以正常工作。我还要在新窗口中添加成功/失败响应 并调用window.close,以便弹出窗口消失。

我唯一关心的是弹出窗口阻止程序可能会阻止弹出窗口,但是只要您由于用户操作(例如点击)而调用window.open,它就可以正常工作。

一个应该避免该问题的解决方案是让您在页面上的iframe中打开链接-其余流程相同(window.postMessage握手,然后删除iframe)-但如果付款处理器采用某种iframe破坏然后将无法正常工作。

祝你好运!