贝宝支付嵌入导致当前页面中的iframe
问题描述:
打开我遇到了贝宝付款自适应API一些真的很烦人的问题。我试图在支持嵌入式iframe中嵌入付款,我已按照说明执行了所有操作。当我付费时,点击按钮,即可打开lightbox的iframe,我可以毫无问题地执行付款。但是,如果我取消付款或通过付款并获取paymentSuccess调用,则结帐页面将加载到iframe中,但未关闭。该paymentCanceled根本没有被调用,因为没有显示皮诺应该警惕。贝宝支付嵌入导致当前页面中的iframe
我展示一些代码给你,但事实是,它是从一个WordPress插件,尚未采取的工作,我因此不能告诉你页面的“工作版本”。无论如何,如果你需要更多的细节,只要问一下,我会尽量让它们可用。
贝宝的JavaScript
<script type="text/javascript" charset="utf-8">
var dgFlow = new PAYPAL.apps.DGFlow({trigger: 'post_pay_counter_paypal_execute_payment'});
function MyEmbeddedFlow(embeddedFlow) {
this.embeddedPPObj = embeddedFlow;
this.paymentSuccess = function() {
this.embeddedPPObj.closeFlow();
// handle payment success here
top.close();
};
this.paymentCanceled = function() {
alert('pippo');
this.embeddedPPObj.closeFlow();
// handle payment cancellation here
top.close();
}
}
var myEmbeddedPaymentFlow = new MyEmbeddedFlow(dgFlow);
</script>
谢谢大家!
答
我有我的问题解决了。代码如下:
jQuery(document).ready(function($) {
//Manage the closing of the iframe when payment is executed/canceled
if (window != top) {
top.location.replace(document.location);
}
}
//Initialize PayPal embedded payment flow. Now loading it on document ready so that we only have it if user prepares payment, not just loads the page...
var dgFlow = new PAYPAL.apps.DGFlow({trigger: 'post_pay_counter_paypal_execute_payment'});
是的! 'top.location.replace'是关闭灯箱和重定向的方式;如果你需要重定向,'closeFlow()'不起作用。详情请参阅[本页](https://developer.paypal.com/docs/classic/express-checkout/digital-goods/ClosingWindow/)。 – bjnord
我正在努力解决这个问题,但这里的解决方案并不适合我 - 任何人都可以给我更多的细节吗? –