【问题标题】:Iframe payone redirect parentiframe payone 重定向父级
【发布时间】:2011-06-05 16:18:08
【问题描述】:

我有一张付款表格。当我提交该表单时,它会在我成功提交后重定向到 PAYONE 以获取付款信息​​。该页面重定向到我网站的成功链接以获取更多详细信息。

现在我的问题开始了: 我将支付网关 (PAYONE) 页面打开到同一窗口中的 iframe。但是当我成功提交信息并点击提交时。然后它将在 iframe 中重定向。

如何重定向到我在帖子数据中提供的成功链接?

【问题讨论】:

  • 通常支付提供商不希望您使用 iframe 来处理付款...它更安全...我实际上很惊讶他们没有检测到 iframe...(甚至 stackoverflow 也不允许其内容加载到 iframe 中)...如果您决定保留 iframe,我只会围绕怪癖设计页面...您唯一能做的就是在付款完成后有一个重定向/刷新页面加载进入 iframe 然后重新加载页面...

标签: php redirect iframe payment payone


【解决方案1】:

由于安全性和现在可以控制您的支付提供商,处理此问题的最简单方法是创建一个“登陆”iframe 页面,客户从支付提供商那里被重定向回该页面。然后该页面调用一个函数将整个页面重新加载到新的 URL...

在父窗口中: 把它放在这个部分

<script type="text/javascript">
    function payment_redirect(url) { document.location=url;}
</script>

然后只需一个简单的 iframe 登陆页面来触发更新

<html><head><title></title></head>
<body onload="parent.payment_redirect('http://www.google.com');">
If you are not redirect in 5 seconds, please click here...  etc..
</body></html>

注意我如何在父窗口中包含该函数,然后通过“父”从 iframe 页面调用它 - iframe 安全性不会让您直接从 iframe 重定向或刷新页面...

【讨论】:

    【解决方案2】:

    我知道这个问答比泥土更古老,但我想我会为其他寻找此信息的人澄清一下。

    由于重定向将在同一域中的页面上,跨域脚本安全不会发挥作用,因此您无需在 iframe 父级上放置任何代码,只需让支付提供商返回到具有以下内容的页面:

    <html><head><title></title></head>
    <body onload="parent.location='http://www.google.com';">
    If you are not redirect in 5 seconds, please click here...  etc..
    </body></html>
    

    【讨论】:

      【解决方案3】:

      自从提出这个问题后,PAYONE 已将 iframe-busting 整合到他们的 API 中。在为支付表单创建链接或 POST 参数时,请包含此参数:

      'targetwindow' => 'top'
      

      其他允许的值是:

      • 窗口
      • 开瓶器
      • 顶部
      • 父母
      • 空白
      • 自我

      从支付表单返回的用户将被发送到指定的目标窗口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 2011-02-23
        • 2013-03-12
        相关资源
        最近更新 更多