我正在尝试使用灯箱实现自适应支付作为嵌入式支付。
在用户付款之前,它可以正常工作,但在用户完成付款后
return url
指定的页面在iframe中加载。
我期待它被加载到窗口而不是iframe中。
以下是我的代码。我错过了什么吗?
环境
Java(播放框架)
PayPal_Platform_Java_SDK_N
预期的网页转移方案
PageA - (“用paypal支付”按钮点击)
→paypal对话框 - (“关闭”按钮点击)
→PageB
将pageA.html
<form action="https://www.sandbox.paypal.com/webapps/adaptivepayment/flow/pay" target="PPDGFrame">
<dl>
<dt></dt>
<dd>
<input id="type" type="hidden" name="expType" value="light">
<input id="paykey" type="hidden" name="paykey" value="AP-KEY">
<input type="submit" id="paypalSubmitBtn" value="Pay with paypal" />
</dd>
</dl>
</form>
<script type="text/javascript">
var dgFlow;
$(function(){
dgFlow = new PAYPAL.apps.DGFlow({ trigger: 'paypalSubmitBtn' });
});
</script>
PageB.html
<p>Thank you for your payment!</p>
<script type="text/javascript">
function handleEmbeddedFlow() {
if (top && top.opener && top.opener.top) {
top.opener.top.dgFlow.closeFlow();
}
else{
top.dgFlow.closeFlow();
}
top.close();
}
jQuery.event.add(window, "load", function(){
alert("window.load");
handleEmbeddedFlow();
});
</script>
我还注意到,在PageB.html中的其他案例dgFlow
中无法解析top.dgFlow.closeFlow();
。
答案 0 :(得分:1)
您可以尝试检测网页是否在iframe中运行,如果是,则直接重定向到该页面。
如何检测: How to identify if a webpage is being loaded inside an iframe or directly into the browser window?