API PayPal NVP — ошибка TransactionSearch 10001 Запрос на обработку тайм-аута

Я пытаюсь создать собственный бухгалтерский отчет с использованием API PayPal NVP, который будет получать все транзакции за определенный диапазон дат.

Мой код:

$headers            = array(
'USER'              => $production_user,
'PWD'               => $production_pass,
'SIGNATURE'         => $production_sig
);

$nvp                = array(
'METHOD'            => 'TransactionSearch',
'TRANSACTIONCLASS'  => 'RECEIVED',
'STARTDATE'         => '2016-12-01T00:00:00Z',
'ENDDATE'           => '2016-12-31T00:00:00Z'
);

$request_url        = "https://api-3t.paypal.com/nvp?".http_build_query($nvp);

$curl = curl_init($request_url);
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_HEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
$result = curl_exec($curl);

$result = explode("&", $result);

foreach($result as $f=>$v){
$t  = explode("=", $v);
echo $t[0]." => ".urldecode($t[1]);
echo "<br>";
}

Вот что печатается:

HTTP/1.1 200 OK Date: Fri, 10 Feb 2017 19:51:20 GMT Server: Apache X-PAYPAL-OPERATION-NAME: X-PAYPAL-API-RC: 10001 Connection: close Cache-Control: max-age => 0, no-cache, no-store, must-revalidate Pragma: no-cache HTTP_X_PP_AZ_LOCATOR: slcb.slc Paypal-Debug-Id: 484a759b46e4a Set-Cookie: X-PP-SILOVER

CORRELATIONID => some_random_characters
ACK => Failure
L_ERRORCODE0 => 10001
L_SHORTMESSAGE0 => Internal Error
L_LONGMESSAGE0 => Timeout processing request

Любая помощь с этим вопросом будет принята с благодарностью!

0

Решение

Вы используете почтовый запрос и не публикуете данные.

Я не знаю, что PayPal хочет видеть, но я предполагаю, что это не то, что вы отправляете.

Несколько вещей, чтобы попробовать:

Если вам нужно передать USER, PWD и SIGNATURE в заголовке запроса, сделайте это следующим образом:

$request = array();
$request[] = "USER: $production_user";
$request[] = "PWD: $production_pass";
$request[] = "SIGNATURE: $production_sig";

curl_setopt($ch, CURLOPT_HTTPHEADER, $request);

Если параметры $ nvp должны быть данными поста, попробуйте это:

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvp);

$ Nvp также может быть передан как строка запроса в данных поста.

$query = http_build_query($nvp);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);

Разница заключается в типе контента.

Первый способ:

Content-Type: application/x-www-form-urlencoded

Второй метод:

Content-Type: multipart/form-data

Чтобы помочь в устранении неполадок, было бы хорошо увидеть заголовок запроса и ответа.

Используйте эти параметры, чтобы получить заголовки:

curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);

Заголовок запроса будет в ‘curl_getinfo ()’

curl_setopt($ch, CURLOPT_HEADER, true);$result = curl_exec($ch);
$info = curl_getinfo($ch);
var_export($info);

Выше приведено множество других деталей запроса. Если вы хотите видеть только заголовок:

 $request = curl_getinfo($ch, CURLINFO_HEADER_OUT);

Чтобы получить заголовок ответа:

$result = curl_exec($ch);

$skip = intval(curl_getinfo($ch, CURLINFO_HEADER_SIZE));
$response = substr($result ,0,$skip);
$result = substr($result ,$skip);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]