【问题标题】:Complete payment using window.open使用window.open完成支付
【发布时间】:2019-06-17 18:14:52
【问题描述】:
我正在使用支付处理器,它为我提供了一个 URL,可以将用户发送到该 URL。我可以指定用户在付款后将被重定向到的 success_url、cancel_url 参数。问题是,我的应用程序是一个反应应用程序,我不想重新加载页面。我想创建一个流程,其中将使用 window.open 打开支付页面 url,并且从 React 应用程序中我可以使用 window.postMessage 跟踪支付状态。这是适合这种情况的方法吗?
【问题讨论】:
标签:
javascript
reactjs
dom
iframe
【解决方案1】:
只要后处理 url 与打开器窗口位于同一域中,这样的声音应该可以正常工作。我还将添加成功/失败响应返回新窗口并调用 window.close 以便弹出窗口消失。
我唯一担心的是弹出窗口阻止程序可能会阻止弹出窗口,但只要您调用 window.open 作为用户操作(例如点击)的结果,它应该可以正常工作。
应该规避该问题的解决方案是让您在页面上的 iframe 中打开链接 - 流程的其余部分相同(window.postMessage 握手,然后删除 iframe) - 但如果支付处理器使用某种 iframe 破坏然后这将不起作用。
祝你好运!