编程语言
首页 > 编程语言> > JavaScript-PayPal:在上下文中进行快速结帐后留在页面上

JavaScript-PayPal:在上下文中进行快速结帐后留在页面上

作者:互联网

用户通过In-context Express Checkout付款后,PayPal会重新加载页面并将用户重定向到后端的’returnUrl’参数指定的页面.

但是,这将删除当前页面.

有没有一种方法可以避免在成功结帐后重新加载页面?

解决方法:

在页面中包含一个iframe,然后使用该iframe启动该过程.由于iframe是启动PayPal关联窗口的窗口,因此将iframe重定向到您的returnURL.因此,您的原始页面将保持与调用,变量和所有操作之前的状态相同.

这是一个例子

我有一个名为paypaliframe的不可见iframe的checkout.html. paypaliframe中没有UI,它仅包含与PayPal相关的js函数.

在checkout.html页面中,当我选择PayPal作为付款选项时,我单击了checkout按钮. “ onclick”事件告诉iframe设置交易:

paypaliframe.contentWindow.setupAutorization()

iframe执行setupAutorization()函数,从Paypal获取交易令牌,然后启动上下文中的结帐过程:

paypal.checkout.initXO();
paypal.checkout.startFlow(paypal.checkout.urlPrefix + token)

现在将显示上下文中的结帐窗口,我们看到新窗口重定向到PayPal站点.客户输入他的登录名,同意您的交易,然后Paypal将iframe重定向到您的returnUrl.

将returnURL页面加载到iframe中之后,您只需告诉父页面遵循以下步骤即可:

$(window).load(function() {
    parent.continueAfterPaypal();
});

TLDR;使用iframe启动上下文中的检出,然后使用iframe returnURL页面告诉父级继续发生的事情.

标签:express-checkout,javascript,paypal
来源: https://codeday.me/bug/20191119/2039266.html