我有一张付款表格。当我提交该表单时,它会在我成功提交时重定向到PAYONE以获取付款信息。该页面重定向到我网站的成功链接以获取更多详细信息。
现在我的问题开始了: 我将支付网关(PAYONE)页面打开到同一窗口中的iframe。但是当我成功提交信息并点击提交时。然后它将在iframe中重定向。
如何重定向到我在帖子数据中提供的成功链接?
答案 0 :(得分:2)
我知道这个Q& A比污垢更老,但我想我会为其他寻找此信息的人澄清。
由于重定向将位于同一域中的某个页面上,因此跨域脚本安全性不起作用,因此您无需在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>
答案 1 :(得分:1)
考虑到安全性并且现在可以控制您的支付提供商,处理此问题的最简单方法是拥有一个“登陆”iframe页面,客户将其重定向回支付提供商。该页面然后调用函数将整个页面重新加载到新网址...
在父窗口中: 把它放在
部分<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 :(得分:0)
自提出此问题以来,PAYONE已将 iframe-busting 纳入其API。在付款表单中创建链接或POST参数时,请包含以下参数:
'targetwindow' => 'top'
其他允许的值是:
从付款表单返回的用户将被发送到指定的目标窗口。