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