2015-08-25 59 views
0

在現場環境中,我們看到付款狀態爲無/空的DoExpressCheckoutPayment的響應。答覆將Ack設置爲成功,所以這通常意味着有效付款(與完成的PaymentStatus相結合),但是這些付款最終會被拒絕。我們正在使用ASP.NET下的PayPal NuGet包。帶PaymentStatus的DoExpressCheckoutPayment響應無

我的問題是無/空暗示我們需要執行另一個API調用才能獲得實際狀態?我們是否再次調用DoExpressCheckoutPayment還是調用GetTransactionDetails?最終,如果無法在結賬渠道中確定身份,則我們需要拒絕付款。

回答

1

您的付款狀態不應該爲空,應該完成或待定。任何其他狀態通常意味着付款未完成或出現錯誤。確保事務完成的一種方法是發送GetTransactionDetails API調用或TransactionSearch API調用。

從PayPal的開發者網站這裏是交易搜索:
How to Do a Transaction Search

Request 
------- 
Endpoint URL: https://api-3t.sandbox.paypal.com/nvp 
HTTP method: POST 
POST data: 
USER=merchant_user_name 
&PWD=merchant_password 
&SIGNATURE=merchant_signature 
&METHOD=TransactionSearch 
&STARTDATE=2012-01-01T05:38:48Z #Start date of the time range for the search 
&ENDDATE=2012-01-31T05:38:48Z  #End date of the time range for the search 
&VERSION=94 

Response 
-------- 
L_TIMESTAMP0=2012%2d01%2d11T06%3a39%3a13Z 
... 
&L_TIMEZONE0=GMT 
... 
&L_TYPE0=Payment 
... 
&L_EMAIL0=test_user%40x%2ecom 
... 
&L_NAME0=TestName%20Q 
... 
&L_TRANSACTIONID0=9XJ88717E86951234 
... 
&L_STATUS0=Completed 
... 
&L_AMT0=0%2e11 
... 
&L_CURRENCYCODE0=USD 
... 
&L_FEEAMT0=0%2e00 
... 
&L_NETAMT0=0%2e11 
... 
&TIMESTAMP=2012%2d10%2d01T17%3a55%3a54Z 
&ACK=Success 
... 
+0

可以在DoExpressCheckoutPayment調用後立即調用GetTransactionDetails? – Chewy

+0

是的,您可以在DoExpressCheckoutPayment調用之後立即調用GetTransactionDetails。 –

0

從高位的角度來講,我們治療這種類型的支付狀態爲「打開」或「待定」內部。 一旦我們收到來自IPN的通知,我們就可以真正知道付款是否成功(payment_status =已完成通知)。