Статус CURL возвращает внутреннюю ошибку сервера 500

#php #curl

#php #curl

Вопрос:

Я пытаюсь реализовать биткойн-шлюз от apirone. Проблема в том, что когда я запускаю функцию CURL, она возвращает внутреннюю ошибку сервера 500.

итак, я попытался запустить их демонстрационный код. хотя он отлично работает на их сайте, он возвращает ту же внутреннюю ошибку сервера, что и на моем сервере. Я пробую это на своем сервере. Ниже приведен код

 <?php
  $json_data = array (
    'type' => "forwarding",
    'currency' => "btc",
    'callback' => array(
        'url'=> "http://example.com/callback",
        'data' => array (
            'invoice_id' => "1234"
        )
    ),
    'destinations' => array (        
        array('address' => "1apiKcJM95jENZeom2dQo8ShK7dUQkRaS", 'amount' => 40330),
        array('address' => "1ApiwpetcWnBbkpU7cb7biPfc6Tiucasf8", 'amount' => 40330)
    )
  );
  
  $api_endpoint = "https://apirone.com/api/v2/wallet";
 
  $curl = curl_init($api_endpoint);
  curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
  curl_setopt($curl, CURLOPT_POST, 1);
  curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $response = curl_exec($curl);
  $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  curl_close($curl);
 
  if ($http_status_code==200){
      $decoded = json_decode($response, true);
      echo "Wallet: " . $decoded["wallet"] . "<BR>";
      echo "Key: " . $decoded["transfer_key"];
  } else {
      var_dump($response);
  }
?>
  

более подробную информацию можно найти здесь https://apirone.com/docs/forwarding-wallet

может кто-нибудь сообщить мне, что может быть причиной этой ошибки?

Спасибо

Комментарии:

1. Итак, что говорят журналы?

2. @TonyStark он не регистрирует никаких ошибок, связанных с этим.. С других страниц регистрируется только несколько неопределенных переменных

Ответ №1:

Я думаю, что это может быть проблема с настройками cURL.

Попробуйте разместить

 curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
  

после

 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data));
  

Кроме того, я бы не стал json_encode($json_data) указывать непосредственно в аргументе функции. Попробуйте закодировать его раньше и отправьте уже закодированный json в CURLOPT_POSTFIELDS опции.