PayPal C#API-ExecutePayment随机失败

PayPal C#API-ExecutePayment随机失败,paypal,paypal-rest-sdk,Paypal,Paypal Rest Sdk,我遇到了ExecutePayment调用随机失败的问题-这导致付款无法通过 以下是流程图: 用户通过PayPal点击支付 用户在通过调用payment.Create(apiContext)创建“approval\u url”后被重定向到PayPal 用户通过PayPal确认付款,并被重定向回我们的网站 然后,我们在验证PayPal传回的PaymentID与原始PaymentID匹配后处理订单,然后调用“payment.Execute(apiContext,paymentExecution);”这

我遇到了ExecutePayment调用随机失败的问题-这导致付款无法通过

以下是流程图:

  • 用户通过PayPal点击支付
  • 用户在通过调用payment.Create(apiContext)创建“approval\u url”后被重定向到PayPal
  • 用户通过PayPal确认付款,并被重定向回我们的网站
  • 然后,我们在验证PayPal传回的PaymentID与原始PaymentID匹配后处理订单,然后调用“payment.Execute(apiContext,paymentExecution);”这个电话还让我们更新发票等等
  • 问题是在某些随机情况下,payment.Execute()调用将抛出一个错误:“远程服务器返回了一个错误:(400)错误请求。”

    发生此错误时,payment.Execute()调用将永远不会通过,这将导致付款无法通过。但是,由于我们已经根据初始批准处理了订单,并且正在使用payment.Execute更新订单发票#,这会导致交易无法进行,但订单正在处理中,因此我们必须撤销订单

    我想知道处理这种情况的一些最佳实践技巧是什么

    我之所以要进行第二次payment.Execute()调用,是因为这似乎是唯一的方法,如何让第一次调用在不依赖第二次调用的情况下完成付款,并使用第二次调用来更新发票号和说明