通过 API 从 Paypal 获取交易信息

Posted

技术标签:

【中文标题】通过 API 从 Paypal 获取交易信息【英文标题】:Getting Transaction Information From Paypal through API 【发布时间】:2014-08-21 22:00:31 【问题描述】:

我正在尝试使用以下代码使用 paypal 的 API 获取旧的交易详细信息:

<?php 
$info = 'USER=[username]'
        .'&PWD=[password]'
        .'&SIGNATURE=[signature]'
        .'&METHOD=TransactionSearch'
        .'&TRANSACTIONCLASS=RECEIVED'
        .'&STARTDATE=2014-01-01T05:38:48Z'
        .'&ENDDATE=2014-01-02T05:38:48Z'
        .'&VERSION=94';

$curl = curl_init('https://api-3t.sandbox.paypal.com/nvp');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS,  $info);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);

$result = curl_exec($curl);

if($result == FALSE)  
    echo "cURL error: " . curl_error($curl);


parse_str($result, $result);

foreach($result as $key => $value)
    echo $key.' => '.$value."<BR>";

我收到一条错误消息:

TIMESTAMP => 2014-07-01T10:57:55Z
CORRELATIONID => db47001bb195b
ACK => Failure
VERSION => 94
BUILD => 11562053
L_ERRORCODE0 => 10002
L_SHORTMESSAGE0 => Security error
L_LONGMESSAGE0 => Security header is not valid
L_SEVERITYCODE0 => Error

这段代码的最终结果是搜索交易记录以查找特定交易并将该数据传递回程序的其余部分。

【问题讨论】:

【参考方案1】:

无效的安全标头错误几乎总是与您的 API 凭据不正确有关。仔细检查您的 API 用户名、密码和签名。当您从沙盒移动到实时状态时,请务必更改您的凭据。

【讨论】:

API 凭据是正确的,但我也不确定如何从沙盒切换到实时测试。你有这方面的经验吗? 真实账户的凭证会有所不同。您可以从真实账户资料中获取它们。

以上是关于通过 API 从 Paypal 获取交易信息的主要内容,如果未能解决你的问题,请参考以下文章

PayPal API 通过交易 ID 获取送货地址

需要帮助从 C# 中的 Paypal API 中提取所有交易详细信息

如何通过 API 获取我的 PayPal 账户的交易历史

如何从 eBay 交易中获取卖家的 PayPal 账户

Paypal - PayFlow Pro,使用“交易 ID”获取交易详细信息 [关闭]

如何从PayPal API获取“订阅已取消”的信息 - GetTransactionDetails