paypal - SetExpressCheckout 和 DoExpressCheckout 支付一步到位 : best practices?

标签 paypal express-checkout

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。他们仍然需要登录并确认付款并被重定向。但如果需要,您可以在同一步骤中调用 DoExpressCheckoutPaymentGetExpressCheckoutDetails

关于paypal - SetExpressCheckout 和 DoExpressCheckout 支付一步到位 : best practices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915696/

相关文章:

Paypal live issue 非美国

asp.net - 将 PayPal 凭据存储在共享主机上的 Web 应用程序 (asp.net) 中

paypal - 如何使用 ExpressCheckout 为 PayPal 定期付款设置 IPN URL?

paypal - Paypal 快速结帐的优惠券代码

javascript - 通过 Paypal Express Checkout REST API 定期付款

paypal - 为什么我们必须重复 DoExpressCheckoutPayment 中的字段,而它们已经在 SetExpressCheckout 中设置了?

php - 使用 Paypal 和其他信用卡选项付款

php - 将变量从篮子传递到 Paypal 以进行付款 - 增值税费用

php - 即使交易正常,今天也有多个 ACCOUNT_CANNOT_BE_FETCHED 错误

ios - 有没有办法验证电子邮件地址是否是有效的 Paypal 电子邮件