PayPal:In-Context Express Checkout提交后停留在页面上

3
在用户通过In-context Express Checkout进行支付后,PayPal会重新加载页面并将用户重定向到后端指定的“returnUrl”参数页面。
然而,这将擦除当前页面。
是否有一种方法可以避免成功结帐后重新加载页面?

这确实是一个非常需要的功能。单页应用程序不需要或不希望进行刷新/重定向等操作。PayPal In-Context似乎有些未完全考虑到SPA! - Rob Evans
目前在这个问题上卡住了,PayPal似乎暗示这是可能的 https://www.paypal.com/webapps/mpp/digital-goods >> 'how it works' - Alan
1个回答

3
将一个iframe包含在你的页面中,并使用该iframe来启动流程。由于iframe是启动PayPal上下文窗口的那个,所以会将iframe重定向到returnURL。因此,您的原始页面保持与调用前完全相同的状态,包括变量等。
以下是一个示例...
我有一个名为paypaliframe的不可见iframe的checkout.html。paypaliframe中没有UI,它只包含与PayPal相关的js函数。
在checkout.html页面上,当我选择PayPal作为付款选项并点击我的结账按钮时,“onclick”事件告诉iframe设置交易:
paypaliframe.contentWindow.setupAutorization()
< p > iframe执行setupAutorization()函数,从Paypal获取交易令牌,然后启动上下文结账过程: < /p >
paypal.checkout.initXO();
paypal.checkout.startFlow(paypal.checkout.urlPrefix + token)

现在显示了上下文结账窗口,我们看到新窗口重定向到PayPal网站。客户输入他的登录信息,同意您的交易,然后Paypal将iframe重定向到您的returnUrl。

在iframe中加载returnURL页面后,您只需告诉父页面按照下一步继续即可:

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

使用 iframe 开始上下文结帐,然后使用 iframe returnURL 页面告诉父窗口继续未完成的事项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接