(Paypal)GetTransactionDetails需要TRANSACTIONID。我如何获得它?

时间:2012-04-25 06:42:48

标签: paypal paypal-nvp

SetExpressCheckout仅向ReturnURL发送以下ACK 的correlationID TIMESTAMP 版 BUILD

要完成交易,我们必须首先使用TRANSACTIONID调用GetTransactionDetails以使PAYERID最终与DoExpressCheckout一起使用以完成交易。

我们从哪里获得TRANSACTIONID?我无法在任何地方找到信息。

如果我使用CORRELATIONID作为TRANSACTIONID,我会得到'交易ID无效'。

示例文件只有'example_transactionId',并且没有指示它应该来自何处。

来自paypal

  1. 调用API操作,例如SetExpressCheckout,设置PayPal在买家完成PayPal后重定向买家浏览器的返回URL。其他设置也可以通过此API操作执行。
  2. 在收到买家对PayPal的许可后调用其他API操作,例如GetExpressCheckoutDetails或DoExpressCheckoutPayment。
  3. 第一步有效,因为我们拥有所有信息并返回此信息。

    enter image description here

    如果没有至少没有给出的TRANSACTIONID,则无法完成步骤2。

    什么?

3 个答案:

答案 0 :(得分:2)

您必须先执行 TransactionSearch 。它将返回带有id的事务。然后,您可以使用 GetTransactionDetails

的ID

答案 1 :(得分:1)

当paypal将用户重定向回RETURNURL(你应该在调用SetExpressCheckout时设置),你会在请求中获得一个TOKEN参数。

然后使用GetExpressCheckoutDetails传递TOKEN作为参数来获取事务信息。响应将包含AMT,PAYERID和TOKEN等。

要完成事务,请将这些参数传递给DoExpressCheckoutPayment。

顺便说一句,您需要使用CORRELATIONID的唯一时间就是与PayPal支持人员交流时。它没有实际用于处理付款。

希望它有所帮助! :)

答案 2 :(得分:0)

在DGdoExpressCheckout.php中,在$DoECResponse收到回复。事务ID可以在此对象的深处找到:

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

您可以在文件中获取整个对象的详细信息:

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

$DoECResponse对象提供了有关事务的一些基本信息,GetTransactionDetails可用于获取更详细的信息。大多数情况下,不需要调用GetTransactionDetails。

相关问题