Curl命令通过SSH而不是通过PHP工作

Curl命令通过SSH而不是通过PHP工作,php,curl,Php,Curl,在Paypal的一个API文档页面上有以下命令 curl -s --insecure -H "X-PAYPAL-SECURITY-USERID: caller_1312486258_biz_api1.gmail.com" -H "X-PAYPAL-SECURITY-PASSWORD: 1312486294" -H "X-PAYPAL-SECURITY-SIGNATURE: AbtI7HV1xB428VygBUcIhARzxch4AL65.T18CTeylixNNxDZUu0iO87e" -H "

在Paypal的一个API文档页面上有以下命令

curl -s --insecure -H "X-PAYPAL-SECURITY-USERID: caller_1312486258_biz_api1.gmail.com" -H "X-PAYPAL-SECURITY-PASSWORD: 1312486294" -H "X-PAYPAL-SECURITY-SIGNATURE: AbtI7HV1xB428VygBUcIhARzxch4AL65.T18CTeylixNNxDZUu0iO87e" -H "X-PAYPAL-REQUEST-DATA-FORMAT: JSON" -H "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON" -H "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T" https://svcs.sandbox.paypal.com/AdaptivePayments/Pay -d "{\"actionType\":\"PAY\", \"currencyCode\":\"USD\", \"receiverList\":{\"receiver\":[{\"amount\":\"1.00\",\"email\":\"rec1_1312486368_biz@gmail.com\"}]}, \"returnUrl\":\"http://www.example.com/success.html\", \"cancelUrl\":\"http://www.example.com/failure.html\", \"requestEnvelope\":{\"errorLanguage\":\"en_US\", \"detailLevel\":\"ReturnAll\"}}"
通过SSH运行此命令将产生成功响应

我试图通过PHP CURL运行这个确切的命令,但不断收到一条错误消息,说明API凭据不正确。由于情况显然并非如此(否则上述命令会产生类似的响应),我无法得出任何结论,除非我的代码有问题,但我已经逃避了好几天的错误:

$baseurl = 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay'; 

define('PAYPAL_API_USER', 'caller_1312486258_biz_api1.gmail.com');
define('PAYPAL_API_PWD', '1312486294');
define('PAYPAL_API_SIGNATURE', 'AbtI7HV1xB428VygBUcIhARzxch4AL65.T18CTeylixNNxDZUu0iO87e');
define('PAYPAL_API_APPLICATION_ID', 'APP-80W284485P519543T');

$returnurl = "http://www.returnurl.net";
$cancelurl = "http://www.cancelnurl.net";

$data = array(
    "actionType" => "PAY",
    "currencyCode" => "USD",
    "receiverList" => array(
        "receiver" => array(
            array(
                "amount" => "1.00",
                "email" => "rec1_1312486368_biz@gmail.com"
            ),
        )
    ),
    "returnUrl" => $returnurl,
    "cancelUrl" => $cancelurl,
    "requestEnvelope" => array(
        "errorLangauge" => "en_US",
        "detailLevel" => "ReturnAll",
    )
);

$headers = array(
    "X-PAYPAL-SECURITY-USERID: ".PAYPAL_API_USER,
    "X-PAYPAL-SECURITY-PASSWORD: ".PAYPAL_API_PWD,
    "X-PAYPAL-SECURITY-SIGNATURE: ".PAYPAL_API_SIGNATURE,
    "X-PAYPAL-SECURITY-REQUEST-DATA-FORMAT: JSON",
    "X-PAYPAL-SECURITY-RESPONSE-DATA-FORMAT: JSON",
    "X-PAYPAL-SECURITY-APPLICATION-ID: ".PAYPAL_API_APPLICATION_ID,
);

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $baseurl);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
curl_setopt ($ch, CURLOPT_HEADER, $headers);
print_r(curl_exec($ch));
有人能发现这个代码有什么错误吗

我必须再次强调,这完全是一个PHP CURL问题,而不是Paypal问题。

嗯,试试:

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
使用
CURLOPT_HTTPHEADER
代替
CURLOPT_HEADER
CURLOPT_HEADER
只是一个标志,如果希望在输出中看到响应的头,可以使用它

来源:

嗯,试试:

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
使用
CURLOPT_HTTPHEADER
代替
CURLOPT_HEADER
CURLOPT_HEADER
只是一个标志,如果希望在输出中看到响应的头,可以使用它


来源:

您不应该包括您的安全密钥/密码。。。。这是一个公共论坛..Darren这些是发布在Paypal文档页面上的公共论坛:。当然,我永远不会发布我自己的邮件,只是看看我的朋友:-)你不应该包括你的安全密钥/密码。。。。这是一个公共论坛..Darren这些是发布在Paypal文档页面上的公共论坛:。我当然不会发我自己的邮件,只是为了照顾我的朋友:-)