贝宝:在上下文快速结帐后留在页面上
Posted
技术标签:
【中文标题】贝宝:在上下文快速结帐后留在页面上【英文标题】:paypal: stay on page after in-context express checkout 【发布时间】:2015-11-15 01:00:51 【问题描述】:用户通过 In-context Express Checkout 付款后,PayPal 会重新加载页面并将用户重定向到后端“returnUrl”参数指定的页面。
但是,这将删除当前页面。
有没有办法避免在成功结帐后重新加载页面?
【问题讨论】:
这确实是一个非常需要的功能。单页应用程序不需要或不希望刷新/重定向等。PayPal In-Context 似乎已经考虑了一半,因为没有考虑 SPA! 目前被这个问题难住了,paypal 似乎暗示这是可能的paypal.com/webapps/mpp/digital-goods >> '它是如何工作的' 【参考方案1】:在您的网页中添加一个 iframe 并使用该 iframe 启动该过程。由于 iframe 是启动 PayPal 上下文窗口的窗口,因此 iframe 将被重定向到您的 returnURL。因此,您的原始页面将保持在调用、变量和所有内容之前的确切状态。
这是一个例子......
我有一个名为 paypaliframe 的不可见 iframe 的 checkout.html。 paypaliframe中没有UI,只包含了PayPal相关的js函数。
在checkout.html页面中,在选中PayPal作为“付款”选项时,我单击“查核”按钮。 “onclick”事件告诉 iframe 设置事务:
paypaliframe.contentWindow.setupAutorization()
iframe 执行 setupAutorization() 函数,从 Paypal 获取交易令牌,然后开始上下文结帐流程:
paypal.checkout.initXO();
paypal.checkout.startFlow(paypal.checkout.urlPrefix + token)
现在显示上下文中的结帐窗口,我们看到新窗口重定向到 PayPal 站点。客户输入他的登录信息,同意您的交易,然后 Paypal 将 iframe 重定向到您的 returnUrl。
在 iframe 中加载 returnURL 页面后,您只需告诉父页面执行以下步骤:
$(window).load(function()
parent.continueAfterPaypal();
);
TLDR;使用 iframe 启动上下文结帐,然后使用 iframe returnURL 页面告诉父级从停止的地方继续。
【讨论】:
以上是关于贝宝:在上下文快速结帐后留在页面上的主要内容,如果未能解决你的问题,请参考以下文章