Paypal 快速结帐 API : can DoExpressCheckoutPayment fail?

标签 paypal express-checkout

我即将整合Paypal Express Checkout在在线食品订购系统中。我目前对流程的看法如下:

  • SetExpressCheckout 被调用,客户被重定向到带有 token 的 Paypal。
  • 一旦客户批准付款,他将被重定向到等待页面,同时订单被发送到餐厅。
  • 收到餐厅回复后,会发生以下情况:
    • 如果订单通过,调用DoExpressCheckoutPayment,完成支付;
    • 如果订单被拒绝,付款将永远无法完成。

这让我想知道,是否有可能 DoExpressCheckoutPayment 失败,并且出于任何原因无法提取资金?因为在我的情况下,取消已经发送到餐厅的订单为时已晚。

我是否应该改用 PAYMENTACTION=Authorization,然后获取/作废授权?由于资金可以持有3天,而我只需要几分钟的时间来做决定,这看起来有点过分了。

最佳答案

是的,DoExpressCheckoutPayment API 调用肯定会失败。
您应该做的是在您的 SetExpressCheckout 和 DoExpressCheckoutPayment API 调用中设置 PAYMENTACTION=Authorization,并且 - 一旦餐厅确认订单 - 调用 DoCapture API 从授权中获取资金。
资金兑现期限为 3 天,授权期限最长为 29 天。

还有;设计失败。保持后备。以防 DoCapture 确实失败。它不应该,但你永远不会知道。因此,请仔细检查 DoCapture API 响应中的“PAYMENTSTATUS”是否为“已完成”以及“TRANSACTIONID”是否为空。

关于 Paypal 快速结帐 API : can DoExpressCheckoutPayment fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820701/

相关文章:

php - DoReferenceTransaction 未获得成功

Paypal 上下文结账恢复为经典快速结账

php - Paypal 返回 url 被截断

php - Paypal 的快速结帐上下文集成

PayPal .NET 集成需要当前的 paypal_base.dll 文件

java - Paypal 沙箱响应中未返回收据编号

paypal - 有没有办法用 Paypal 创建后付费订阅?

jquery - 在 magento 中成功支付 paypal 后检索数据

c# - Asp.net C# 的 PayPal RestApi 身份服务不返回正确的 url

Paypal 快速结帐与 REST api?