@santavits

Почему идёт разный ответ апи?

Такая проблема
Есть сервис, на него передаются заказы по апи, если вручную сформировать запрос и запустить в браузере, то ответ получаю такой как надо, если через скрипт php там к примеру через curl или file_get_contents, то ответ совсем другой, левая ошибка вообще выходит.

Как можно устранить данную проблему?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
RomaZveR
@RomaZveR
CEO AlertMoney, PHP/Golang Developer
curl_setopt($ch, CURLOPT_urlERER, $url); //Это чего такое?

Судя по тому что валятся и curl и file_get_contents у вас к php не подключена OpenSSL. А для курла не настроен корневой сертификат.
Пробуйте так. Смотрите какую ошибку курл выдаст.
$ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
$url = "https://sites.ru/api/index.php?key=apikey&action=create&service=295&quantity=1&link=111";
 
$ch = curl_init($url);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
      curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
      curl_setopt($ch, CURLOPT_USERAGENT, $ua);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); //Можете поставить в 0, но это риск mitm.
      curl_setopt($ch, CURLOPT_URL, $url);
$buf = curl_exec ($ch);

 // Проверяем наличие ошибки.
if (curl_errno($ch)) {
     //На продакшене заменить логгированием. 
     echo 'Ошибка curl: ' . curl_error($ch);
}
curl_close ($ch);
     
echo $buf;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы