Публикация в API с помощью cURL - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь опубликовать данные в API с помощью cURL.Если я делаю это через игровую площадку провайдера API, это работает.

Но в моем коде что-то не работает:

$headers = array();
$headers[] = 'Authorization: hmac ' .$websiteKey.':'.$hmac .':'.$nonce . ':'.$time;
$curl = curl_init('testcheckout.buckaroo.nl/json/Transaction');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl,CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);    
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
return $result;

if(curl_error($curl))
{
    echo 'error:' . curl_error($c);
}

curl_close($curl);

Я попытался обработать ошибки с помощью функции curl_error, но, похоже, это тоже не работает.Я никогда не получаю ошибку, даже если я делаю некоторые очевидные ошибки, такие как намеренное изменение секрета API на что-то, что не имеет смысла.Как мне отправить данные.Как мне публиковать сообщения в API и почему я не получаю никаких ошибок?

1 Ответ

0 голосов
/ 18 мая 2018

Несколько примечаний:

  • Оператор return должен следовать после проверки ошибок.
  • Чтобы проверить ошибки, необходимо протестировать $result === false.
  • Переменная $c не определена в curl_error().
  • URL неверно сформирован, отсутствует схема (например, http://).
  • Опция CURLOPT_URL является избыточнойпотому что уже определено в curl_init().

Код:

$headers = array();
$headers[] = 'Authorization: hmac ' .$websiteKey.':'.$hmac .':'.$nonce . ':'.$time;
$curl = curl_init('http://testcheckout.buckaroo.nl/json/Transaction');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl,CURLOPT_POSTFIELDS, $post);
// curl_setopt($curl, CURLOPT_URL, $url); // already defined in curl_init().
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
if($result === false)
{
    echo 'error:' . curl_error($curl);
}
curl_close($curl);
return $result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...