2013-09-11 5 views
1

Я вот уже пять дней борюсь с этой проблемой. Это загадка для меня. Может ли кто-нибудь узнать, почему этот код возвращает error52003, учетные данные API неверны? Ваша помощь или свежий взгляд очень ценятся.Paypal возвращает учетные данные API неверные

<?php 

$USER_ID="userid"; 
$USER_PASS="userpass"; 
$USER_SIG="usersig"; 
$APP_ID="appid"; 

$apiUrl="https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"; 

$headers = array(
    "X-PAYPAL-SECURITY-USERID: ".$USER_ID, 
    "X-PAYPAL-SECURITY-PASSWORD: ".$USER_PASS, 
    "X-PAYPAL-SECURITY-SIGNATURE: ".$USER_SIG, 
    "X-PAYPAL-APPLICATION-ID: ".$APP_ID, 
    "X-PAYPAL-REQUEST-DATA-FORMAT: JSON", 
    "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON" 
); 

$createPacket = array (
    "actionType"=>"PAY", 
    "currencyCode"=>"EUR", 
    "receiverList"=> array (
     "receiver"=> array(
      array(
       "amount"=> "1", 
       "email"=>"[email protected]" 
      ), 
      array(
       "amount"=> "2", 
       "email"=>"[email protected]" 
      ) 
     ) 
    ), 
    "returnUrl"=>"https://www.sandbox.paypal.com/", 
    "cancelUrl"=>"https://www.sandbox.paypal.com/", 
    "requestEnvelope"=>array(
     "errorLanguage"=>"en_US" 
    ) 
); 


$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $apiUrl); 
    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($createPacket)); 
    curl_setopt($ch, CURLOPT_HEADER, array($headers)); 

    $result= curl_exec($ch); 

    curl_close($ch); 

    echo $result; 

>

+0

Вы не должны разделять ваши учетные данные API в общественном месте, как этот сайт. Если вы уверены, что эти значения верны, вы можете просто скрыть их и предположить, что проблема находится в каком-то другом месте – mishu

+0

, если вы отправляете поля POST с помощью cURL, вы также должны установить флаг, который «сообщает» библиотеке, что вы это делаете , вот так: 'curl_setopt ($ ch, CURLOPT_POST, 1);' – mishu

+0

Хорошо указать на вещи, как это, Мишу. Эти учетные данные являются стандартными учетными данными PayPal, которые они предоставляют для целей тестирования. Не стесняйтесь попробовать этот код. Я добавил линию, которую вы упомянули, но это не помогло. Все другие идеи? – user2759251

ответ

0
curl_setopt($ch, CURLOPT_HEADER, array($headers)); 

должно быть:

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
+0

Эй, Мэтт, я даю тебе галочку, потому что это действительно ошибка. Однако все еще не работает. Та же старая ошибка. Должно быть что-то еще. Вы что-нибудь видите? – user2759251

+0

Пересмотрено мое решение. Не бросайте '$ headers' в массив - это уже массив. –

+0

УСПЕХ !!! Я потерял пять дней своей жизни, но это сообщение того стоило! Ты сделал это! Слава богу за таких волшебников, как ты. Да благословит Бог все ваши дома. спасибо – user2759251

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