Paypal 在 Paypal 结账流程中推荐的通常步骤是:
1)在购物车页面显示Paypal支付
2) 当用户按下该按钮时,执行 SetExpressCheckout
API 调用以获取 token 。
3) 重定向到 Paypal 网站并要求用户输入用户名和密码以获得金额授权
4) - 用户在 Paypal 网站上按下继续按钮
- 用户被重定向到 ReturnURL(在卖家网站上,通常是确认订单页面)
5) 调用GetExpressCheckoutDetails
API获取客户详细信息
6) 在确认页面上,用户按下支付
调用 DoExpressCheckout
支付 API 调用
7) 显示感谢页面
我想去掉第 4 步和第 5 步,基本上:
1) 在购物车页面显示Paypal支付
2) 当用户按下该按钮时,显示发货地址确认页面,获取客户详细信息并再次显示使用 Paypal 付款按钮。
3) 当用户按下该按钮时:
- 执行
SetExpressCheckout
API 调用以获取 token - 重定向到 Paypal 网站并询问用户名/密码
- 执行
GetExpressCheckoutDetails
API 调用以获取 PayerID - 执行
DoExpressCheckoutPayment
API 调用
4) 显示感谢页面。
对我来说,客户旅程似乎更短了。这个设置有问题吗?
但是,不确定如何在不从网站上从 Paypal 重定向回网站并且必须从 URL ($_REQUEST) 检索数据的情况下执行此操作。
我找到了一份关于旧版 question 的引用资料关于将“useraction=commit”附加到 SetExpressCheckout
的重定向,但是这在 Paypal 官方文档中是不可能找到的。
还有其他人遇到过这个问题并找到了解决方案吗?
最佳答案
如果您不需要任何用户详细信息但您不能缩短用户的 PayPal 体验,您实际上可以完全省略 GetExpressCheckoutDetails
。他们仍然需要登录并确认付款并被重定向。但如果需要,您可以在同一步骤中调用 DoExpressCheckoutPayment
和 GetExpressCheckoutDetails
。
关于paypal - SetExpressCheckout 和 DoExpressCheckout 支付一步到位 : best practices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915696/