Paypal Express Checkout API:DoExpressCheckoutPayment可以失败吗?

时间:2012-05-30 16:50:08

标签: paypal express-checkout

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

    调用
  • SetExpressCheckout,并使用令牌将客户重定向到Paypal。
  • 一旦客户批准了付款,他将被重定向到等待页面,同时订单将被发送到餐厅。
  • 收到餐厅回复后,会发生以下情况:
    • 如果订单获得批准,则会调用DoExpressCheckoutPayment并完成付款;
    • 如果订单被拒绝,则付款永远不会完成。

这让我想知道,DoExpressCheckoutPayment是否有可能失败,资金不能以任何理由被取走?因为在我的情况下,取消已发送到餐厅的订单为时已晚。

我应该使用PAYMENTACTION=Authorization代替,然后捕获/取消授权吗?由于资金可以持有3天,而我只需要几分钟的时间来做出决定,这看起来有点矫枉过正。

1 个答案:

答案 0 :(得分:3)

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

也;设计失败。保持一个后备。以防DoCapture 失败。它不应该,但你永远不会知道。因此,请仔细检查DoCapture API响应中的'PAYMENTSTATUS'是'已完成'和'TRANSACTIONID'是否为空。