2012-04-25 19 views
2

SetExpressCheckout只有職位的RETURNURL隨後的ACK 的correlationID TIMESTAMP VERSION BUILD(Paypal)GetTransactionDetails需要TRANSACTIONID。我如何獲得它?

完成交易,雖然我們必須先調用GetTransactionDetails與TRANSACTIONID得到PAYERID最終與DoExpressCheckout使用完成交易。

我們從哪裏獲得TRANSACTIONID?我無法在任何地方找到信息。

如果我使用CORRELATIONID作爲TRANSACTIONID,我會得到'Transaction Id is invalid'。

示例文件只有'example_transactionId',並且沒有指示它應該來自哪裏。

來自PayPal

  1. 調用API操作,如SetExpressCheckout,即建立買家在PayPal完成後,其貝寶重定向買家的瀏覽器的返回URL。其他設置也可以通過此API操作來執行。
  2. 在收到PayPal買方的許可後調用其他API操作,例如GetExpressCheckoutDetails或DoExpressCheckoutPayment。

第一步工作,因爲我們有所有的信息並返回這個。

enter image description here

步驟2不能沒有未給出至少TRANSACTIONID完成。

什麼?

回答

2

您必須首先執行TransactionSearch。它將返回帶有id的事務。那麼你可以使用的ID GetTransactionDetails

+1

易趣表示,它包括它的順序響應,但似乎並非如此。 :)你的答案確實有幫助..但它會返回一堆付款。其中沒有一個直接告訴你你正在尋找哪個交易。 – baash05 2013-02-21 02:17:55

+0

您好,使用setExpresschecout CURL方法,我可以設置定期付款,並獲得數組作爲成功ACK的回報,在這裏我通過數據庫更新用戶已付款,但現在假設我的結算週期爲15天,此腳本如何檢查交易15天后成功?我是否需要任何cron工作或什麼,我檢查可能的文章,但沒有找到如何在結算週期結束後檢查付款人的狀態。 謝謝 – Vishal 2016-03-19 11:40:34

1

貝寶將用戶重定向回RETURNURL(你應該在你的調用SetExpressCheckout設置)你在請求中的令牌參數。

然後您使用GetExpressCheckoutDetails傳遞TOKEN作爲參數來獲取交易信息。響應將包含AMT,PAYERID和TOKEN等。

要完成交易,請將這些參數傳遞給DoExpressCheckoutPayment。

順便說一句,您只需要使用CORRELATIONID就是在與PayPal支持交談時。處理付款沒有實際用途。

希望它有幫助! :)

0

在DGdoExpressCheckout.php中,回覆收到$DoECResponse。交易編號可以深深這個對象內部發現:

$tranId = $DoECResponse->DoExpressCheckoutPaymentResponseDetails->PaymentInfo[0]->TransactionID; 

你可以在一個文件中的整個對象的詳細信息:

file_put_contents('debug.log', print_r($DoECResponse, true)); 

$DoECResponse對象提供一些關於交易的基本信息,並GetTransactionDetails能用於獲取更詳細的信息。大多數情況下,不需要調用GetTransactionDetails。