2011-01-08 74 views
0

我有一個付款單。當我提交該表單時,我會在成功提交時將其重定向到PAYONE以獲取付款信息​​。該頁面將重定向到我的網站的成功鏈接以獲取更多詳細信息。Iframe payone重定向父母

現在我的問題開始: 我在同一窗口中將我的付款通道(PAYONE)頁面打開到iframe中。但是當我成功提交信息並點擊提交。然後它將在iframe中重定向。

如何重定向到我在發佈數據中提供的成功鏈接?

+0

通常付款提供商不希望你使用iframe來處理付款......它更多的是安全性的事情......我真的很驚訝他們沒有檢測到iframe ......(即使是stackoverflow也不允許它的內容被加載到iframe)...如果你決定保留iframe,我只是圍繞怪癖設計頁面...只有其他的事情你可以做的是一旦付款完成有一個重定向/刷新頁面加載到iframe然後重新加載頁面... – CarpeNoctumDC 2011-01-08 06:08:07

回答

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中刷新頁面...

+0

感謝您的回答,我將嘗試此操作。謝謝!!! – user567792 2011-01-10 04:14:52

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> 
0

因爲這個問題被提出,PAYONE已納入iframe的破壞到他們的API。當創建鏈接或POST參數給付款形式,包括此參數:

'targetwindow' => 'top' 

其它允許的值是:

  • 窗口
  • 開罐器
  • 頂部
  • 空白
  • 自我

從付款單返回的用戶將被髮送到指定的目標窗口。