2011-12-27 2 views
3

Я зарегистрировался на Sandbox в PayPal, после чего добавил тестовую учетную запись продавца, предварительно сконфигурированную. Что касается ApplicationId, я использовал несколько найденных в Интернете. Наконец, вызвав предварительного разрешения, у меня ошибка в ответ:Устранено: Ошибка аутентификации PayPal Adaptive Payments

Array 
(
    [RESPONSEENVELOPE.TIMESTAMP] => 2011-12-26T19:39:54.500-08:00 
    [RESPONSEENVELOPE.ACK] => Failure 
    [RESPONSEENVELOPE.CORRELATIONID] => a052cd3abd4ea 
    [RESPONSEENVELOPE.BUILD] => 2279004 
    [ERROR(0).ERRORID] => 520003 
    [ERROR(0).DOMAIN] => PLATFORM 
    [ERROR(0).SUBDOMAIN] => Application 
    [ERROR(0).SEVERITY] => Error 
    [ERROR(0).CATEGORY] => Application 
    [ERROR(0).MESSAGE] => Authentication failed. API credentials are incorrect. 
) 

PHP код:

$URL = 'https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval' 
    .'?startingDate='.date('Y-m-d\Z') 
    .'&endingDate='.date('Y-m-d\Z', strtotime('+1 year')) 
    .'&currencyCode=USD' 
    .'&maxTotalAmountOfAllPayments=500.00' 
    .'&maxAmountPerPayment=200.00' 
    .'&maxNumberOfPayments=30' 
    .'&[email protected]' 
    .'&cancelUrl=http://example.com/cancel' 
    .'&returnUrl=http://example.com' 
    .'&pinType=NOT_REQUIRED' 
    .'&requestEnvelope.errorLanguage=en_US'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $URL); 
curl_setopt($ch, CURLOPT_VERBOSE, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HTTPHEADER 
    , array(
     'X-PAYPAL-SECURITY-USERID' => 'xxxx' 
     , 'X-PAYPAL-SECURITY-PASSWORD' => 'xxxx' 
     , 'X-PAYPAL-SECURITY-SIGNATURE' => 'xxxxxxxxxxxxxxxxxxxx' 
     , 'X-PAYPAL-APPLICATION-ID' => 'APP-80W284485P519543T' 
     , 'X-PAYPAL-REQUEST-DATA-FORMAT' => 'NV' 
     , 'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'NV' 
    ) 
); 
$response = curl_exec($ch); 
$responseAr = explode('&', $response); 
$parsedResponseAr = array(); 
foreach($responseAr as $i => $value) { 
    $tmpAr = explode('=', $value); 
    if(!empty($tmpAr)) 
     $parsedResponseAr[strtoupper($tmpAr[0])] = urldecode($tmpAr[1]); 
} 
print_r($parsedResponseAr); 

Может ли это быть из-за неправильного App идентификаторов? Должен ли я сначала регистрировать свое приложение, чтобы получить идентификатор приложения, чтобы использовать его в песочнице?

Редактировать: Я нашел причину: формат массива заголовков был неправильным. Оно должно быть:

array(
    'X-PAYPAL-SECURITY-USERID: xxx' 
    , 'X-PAYPAL-SECURITY-PASSWORD: xxxx' 
    , 'X-PAYPAL-SECURITY-SIGNATURE: xxxxxxxx' 
    , 'X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T' 
    , 'X-PAYPAL-REQUEST-DATA-FORMAT: NV' 
    , 'X-PAYPAL-RESPONSE-DATA-FORMAT: NV' 
) 

ответ

1
[ERROR(0).MESSAGE] => Authentication failed. API credentials are incorrect. 

немного отдать!

+0

Я знаю, но я использую учетные данные из PayPal, и они верны. Означает ли это, что ключ неверен? '[ERROR (0) .CATEGORY] => Приложение« –

+0

»Учетные данные API неверны, означает, что он говорит, может быть, опечатка одна, повторите проверку учетных данных, если все остальное не создаст новую учетную запись пользователя (песочница) – Philip

+0

такая же ошибка при недавно созданной учетной записи PayPal Sandbox ... Я думаю, что мне нужно сначала зарегистрировать наше приложение. –

Смежные вопросы