10001 внутренняя ошибка PayPal: тайм-аут обработки запроса Express Checkout

Прежде всего, у меня нет бизнес-аккаунта, поэтому, если это проблема, просто скажите мне, потому что почти невозможно найти, где находится требование для экспресс-оплаты Paypal на их официальном сайте.

Мой код для этого API:

$requestParams = array(
     'METHOD' => $method,
     'VERSION' => $this -> _version,
     'USER' => $PayPalApiUsername,
     'PWD' => $PayPalApiPassword,
     'SIGNATURE' => $PayPalApiSignature
);

$request = array_merge($requestParams, $params);
//$params is bringed from other php.

$ch = curl_init();
  curl_setopt($ch,CURLOPT_URL ,'https://api-3t.paypal.com/nvp');
  curl_setopt($ch,CURLOPT_VERBOSE ,1);
  curl_setopt($ch,CURLOPT_SSL_VERIFYPEER ,false);
  curl_setopt($ch,CURLOPT_SSL_VERIFYHOST ,false);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER ,1);
  curl_setopt($ch,CURLOPT_HTTPGET ,true);
  curl_setopt($ch,CURLOPT_POSTFIELDS ,$request);

$response = curl_exec($ch);

Затем, пока здесь (я думаю) все в порядке. Но сделав некоторые проверки, это то, что я отправил с $ request:

$request: array(16) {
["METHOD"]=>
string(18) "SetExpressCheckout"
["VERSION"]=>
string(4) "97.0"
["USER"]=>
string(27) "xxx_api1.example.com"
["PWD"]=>
string(16) "yyyyyyyyyyyyyyyy"
["SIGNATURE"]=>
string(56) "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
["RETURNURL"]=>
string(50) "http%3A%2F%2Fwww.website.com%2Fcontinue.php"
["CANCELURL"]=>
string(53) "http%3A%2F%2Fwww.website.com%2Fpaypal%2Fcancel_url.php"
["PAYMENTREQUEST_0_AMT"]=>
string(5) "10.95"
["PAYMENTREQUEST_0_CURRENCYCODE"]=>
string(3) "EUR"
["PAYMENTREQUEST_0_ITEMAMT"]=>
string(5) "10.95"
["PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID"]=>
string(24) "xxx%40example.com"
["PAYMENTREQUEST_0_PAYMENTACTION"]=>
string(4) "Sale"
["L_PAYMENTREQUEST_0_NAME0"]=>
string(17) "ProductA"
["L_PAYMENTREQUEST_0_AMT0"]=>
string(5) "10.95"
["L_PAYMENTREQUEST_0_QTY0"]=>
string(1) "1"
["L_PAYMENTREQUEST_0_NUMBER0"]=>
string(1) "1"
}

И это то, что я получаю от Paypal:

$response: 
TIMESTAMP=2013%2d01%2d07T23%3a20%3a43Z
CORRELATIONID=7a8130fb32e44
ACK=Failure
L_ERRORCODE0=10001
L_SHORTMESSAGE0=Internal%20Error
L_LONGMESSAGE0=Timeout%20processing%20request

Кто-нибудь знает, что здесь происходит? Это неправильно? Является ли главная учетная запись проблемой здесь?


person Ignacio Bustos    schedule 07.01.2013    source источник


Ответы (3)


РЕШЕНИЕ:

Я решил эту проблему с этим:

ИЗБЕГАЙТЕ использования "urlencode()" для кодирования параметров, сохраняйте данные как обычно.

пример:

array(
   'RETURNURL' => 'http://www.yourwebsite.com/confirm.php', //without urlencode()
   'CANCELURL' => 'http://www.yourwebsite.com/cancel.php'  //without urlencode()
);

ИСПОЛЬЗУЙТЕ http_build_query($request) перед отправкой через Curl следующим образом:

curl_setopt($ch,CURLOPT_POSTFIELDS , http_build_query($request));
person Ignacio Bustos    schedule 08.01.2013
comment
http_build_query($request) сделал это за меня - person Jeffrey Hyer; 18.03.2014
comment
черт возьми, это ошибка в обработке paypal кодировки multipart/form-data .. и через 3 года - person hanshenrik; 09.03.2016

Я получал ту же ошибку, однако моя проблема заключалась в неправильном формате даты истечения срока действия карты. Ошибка, которую я получал, была вызвана датой, которую я пропускал. Он был не в том формате. Это должно было быть ""032018", а не "3/2018".

person Usman Shaukat    schedule 25.01.2015

У вас случайно нет обратных URL-адресов в виде поддомена с символом подчеркивания в них, не так ли?

person Chris    schedule 07.01.2013
comment
ну, это обычный веб-сайт, такой как yourwebsite.com/PP_confirm.php и /PP_cancel.php. Является ли этот символ _ проблемой? - person Ignacio Bustos; 08.01.2013
comment
Я обнаружил, что мои домены разработки получают некоторые действительно неясные ошибки от PayPal, потому что я использовал поддомен с подчеркиванием, например. my_subdomain.example.com - person Chris; 08.01.2013