@ssdk

Почему на localhost не получается тестировать api методы, требующие верификации?

Здравствуйте!
Пытаюсь на локальном сервере (WAMP) протестировать работу api методов, требующих верификацию (пробовал с реального сайта на хостинге запускать - там все работает).

Тестирую данный скрипт биржы https://www.livecoin.net/api/examples#php
Второй пример по ссылке, где $url = "https://api.livecoin.net/exchange/client_orders";
Привожу данный код и тут
$url = "https://api.livecoin.net/exchange/client_orders";
$apiKey = "gJx7Wa7qXkPtmTAaK3ADCtr6m5rCYYMy";
$secretKey = "8eLps29wsXszNyEhOl9w8dxsOsM2lTzg";
 
$params = array(
    'currencyPair'=> 'BTC/USD'
);
 
ksort($params);
$fields = http_build_query($params, '', '&');
$signature = strtoupper(hash_hmac('sha256', $fields, $secretKey));
 
$headers = array(
    "Api-Key: $apiKey",
    "Sign: $signature"
);
 
$ch = curl_init($url."?".$fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
if ($statusCode!=200) {
    //dump info:
    echo "Status code: $statusCode, response: $response";
    //throw new Exception('Can not execute the query!');
}
 
var_dump(json_decode($response));


По сути, если запускать его с какого-либо сайта на хостинге, то выдает либо json-массив с различными параметрами, либо, если не верно заданы $apiKey и $secretKey, то такой же json-массив с ошибкой
Status code: 400, response: {"success":false,"errorCode":1,"errorMessage":"For authorization must specify the api kei and signature"}


У меня же при запуске с localhost выдает и с верными и с не верными $apiKey и $secretKey всегда только один ответ
Status code: 0, response: null

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

Создал такой - api.dev
Добавил в hosts
127.0.0.1 api.dev
127.0.0.1 www.api.dev
Изменил файлы
httpd.conf и httpd-vhosts.conf
В httpd.conf строка Include conf/extra/httpd-vhosts.conf должны быть разкомментирована.
В httpd-vhosts.conf добавил такой код
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "c:/wamp64/www"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "c:/wamp64/www/api.dev"
    ServerName api.dev
    <directory "c:/wamp64/www/api.dev">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </directory>
</VirtualHost>


Вирт Хост создан api.dev открывается и работает, но ответ все тот же
Status code: 0, response: null
При этом все методы к публичным дынным, не требующие ключей, работают на локалке хорошо https://www.livecoin.net/api/userdata

Подскажите куда еще копать, что еще можно попробовать?
  • Вопрос задан
  • 1073 просмотра
Решения вопроса 1
@ssdk Автор вопроса
Ответ пришел от службы поддержки - думал игнорят.
Теперь все заработало!

На локальном хосте могут возникнуть сложности с проверкой сертификата.

После строки
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
добавьте строку
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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