SetExpressCheckout仅向ReturnURL发送以下ACK 的correlationID TIMESTAMP 版 BUILD
要完成交易,我们必须首先使用TRANSACTIONID调用GetTransactionDetails以使PAYERID最终与DoExpressCheckout一起使用以完成交易。
我们从哪里获得TRANSACTIONID?我无法在任何地方找到信息。
如果我使用CORRELATIONID作为TRANSACTIONID,我会得到'交易ID无效'。
示例文件只有'example_transactionId',并且没有指示它应该来自何处。
来自paypal
第一步有效,因为我们拥有所有信息并返回此信息。
如果没有至少没有给出的TRANSACTIONID,则无法完成步骤2。
什么?
答案 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。