2

SetExpressCheckout 仅向 ReturnURL 发布以下 ACK CORRELATIONID TIMESTAMP VERSION BUILD

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

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

如果我使用 CORRELATIONID 作为 TRANSACTIONID,我会得到“事务 ID 无效”。

示例文件只有“example_transactionId”,没有说明它应该来自哪里。

从贝宝

  1. 调用一个 API 操作,例如 SetExpressCheckout,设置返回 URL,在买家完成 PayPal 后,PayPal 将买家的浏览器重定向到该 URL。其他设置也可以通过此 API 操作执行。
  2. 在收到买家对 PayPal 的许可后调用其他 API 操作,例如 GetExpressCheckoutDetails 或 DoExpressCheckoutPayment。

第一步有效,因为我们拥有所有信息并将其返回。

在此处输入图像描述

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

什么?

4

3 回答 3

2

你必须先做TransactionSearch。它将返回带有 id 的交易。然后您可以将 id 用于GetTransactionDetails

于 2012-05-04T11:19:11.227 回答
1

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

然后,您使用 GetExpressCheckoutDetails 将 TOKEN 作为参数来获取交易信息。响应将包含 AMT、PAYERID 和 TOKEN 等。

要完成交易,请将这些参数传递给 DoExpressCheckoutPayment。

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

希望能帮助到你!:)

于 2012-06-27T13:18:33.443 回答
0

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

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

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

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

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

于 2015-05-07T08:24:09.477 回答