2013-07-10 1 views
0

В настоящее время с помощью PHP + Curl для тестирования функции НВП SetExpressCheckout Paypal (режим песочницы) на XAMPP, независимо от того, что я делаю, я не получаю следующее сообщение об ошибке:Paypal НВП Authentication Failure

Код ошибки 10002: Аутентификация/Авторизация Не смогли. У вас нет разрешения на выполнение этого вызова API.

$nvp = array(
    'METHOD' => 'SetExpressCheckout', 
    'VERSION' => '98', 
    'USER' => $user, 
    'PWD' => $pwd, 
    'SIGNATURE' => $signature, 
    'RETURNURL' => $returnurl, 
    'CANCELURL' => $cancelurl, 
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale', 
    'PAYMENTREQUEST_0_AMT' => '20.00', 
    'PAYMENTREQUEST_0_CURRENCYCODE' => $currency, 
    'REQCONFIRMSHIPPING' => '0', 
    'NOSHIPPING' => '1', 
    'ALLOWNOTE' => '0', 
    'LOCALECODE' => 'US' 
    'L_PAYMENTREQUEST_0_NAME0' = 'A product name'; 
    'L_PAYMENTREQUEST_0_AMT0' = '20.00'; 
    'L_PAYMENTREQUEST_0_QTY0' = '1'; 
    'L_PAYMENTREQUEST_0_ITEMCATEGORY0' = 'Digital'; 
); 

$request = 'https://api-3t.sandbox.paypal.com/nvp?' . http_build_query($nvp); 
$curl = curl_init(); 

curl_setopt($curl, CURLOPT_URL, $request); 
curl_setopt($curl, CURLOPT_VERBOSE, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$response = urldecode(curl_exec($curl)); 

curl_close($curl); 

Странная вещь, если я типа завитка запрос (такой же, как переменную $ запроса) в браузере я получаю УСПЕХ и маркер с конечной точки, я не знаю, если это имеет какое-то отношение сам завиток или если это что-то еще, я попытался полностью отключить мой брандмауэр, но ошибка не устранена ...

+0

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

+0

После регистрации запроса, выполненного функцией curl, я обнаружил проблему: функция http_build_query() заменяла '&' на '&' ... после исправления того, что она успешно получила соответствующий токен. Спасибо!! –

ответ

0

Ваш массив неисправен.

'L_PAYMENTREQUEST_0_NAME0' = 'A product name'; 

Это хороший способ начать отладку