API Paypal с PHP и cURL

Я пытаюсь «первый вызов», как описано в документации API Paypal. Это пример при условии, что я следую:

curl https://api.sandbox.paypal.com/v1/oauth2/token \ -H "Accept: application/json" \ -H "Accept-Language: en_US" \ -u "EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp" \ -d "grant_type=client_credentials" 

Я создал экземпляр curl в PHP со всеми вышеупомянутыми заголовками, кроме последнего. Что означает флаг -d в качестве параметра curl в PHP? Насколько я могу судить, там мало объяснений. Мне удалось вывести -u как CURLOPT_USERPWD .

  • Как я могу подключиться к скрытой службе Tor, используя cURL в PHP?
  • Запрос Curl с дайджестом auth в PHP для скачивания Частный репозиторий Bitbucket
  • cURL - загрузить сайт с защитой CloudFlare
  • PHP - загрузка файла на другой сервер без завитки
  • Извлечение Android Market mylibrary с завитком
  • Данные запроса REST не могут быть прочитаны методом «put»
  • CURLOPT_POST и CURLOPT_POSTFIELDS: требуется ли опция CURLOPT_POST?
  • Запись нескольких файлов в одном запросе CURL
  • Получение содержимого тела из http post с помощью php CURL
  • Плохой запрос. Подключение к сайтам через завиток на хосте и системе
  • Файлы cookie PHP и cURL
  • php-paypal-error: 14077410: Подпрограммы SSL: SSL23_GET_SERVER_HELLO: отказ при сбое вызова sslv3
  • 2 Solutions collect form web for “API Paypal с PHP и cURL”

    Имея хороший трал вокруг, я собрал части от разработчиков с другими проблемами. Я успешно получил токен доступа, используя следующий код:

     <?php $ch = curl_init(); $clientId = "myId"; $secret = "mySecret"; curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret); curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); $result = curl_exec($ch); if(empty($result))die("Error: No response."); else { $json = json_decode($result); print_r($json->access_token); } curl_close($ch); ?> 

    @Lee указать правильный путь, но если вы используете и старую версию php, она не будет работать. Но версия Ли не обнаружит ошибку. Используйте их вместо этого, я добавляю только часть ошибки, чтобы увидеть, что происходит.

     $ch = curl_init(); $clientId = ""; $secret = ""; curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret); curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); $result = curl_exec($ch); $err = curl_error($ch); $access_token=""; if ($err) { echo "cURL Error #:" . $err; } else { $json = json_decode($result); // print_r($json->access_token); $access_token = $json->access_token; } 

    Если у вас есть и старая версия PHP, это возможно, она не будет работать, и она покажет эту ошибку:

     cURL Error #:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 

    Просто переполнение стека! Здесь они обсуждают проблему

    PHP is the Best Programming Language in the world.