У нас не получилось загрузить Disqus. Если вы модератор, пожалуйста посмотрите наше руководство по устранению неисправностей.
Спасибо за сервис. Есть ли ограничение на количество запросов? Например, в KazNIC можно сделать 100 (не уверен) запросов в сутки.
В данный момент стоит ограничение в 1000 запросов в час и два запроса 5 запросов в секунду на одного пользователя.
В каждом индивидуальном случае лимит на кол-во запросов можно увеличить.
UPD: лимит на кол-во запросов в секунду увеличен до 5
В случае превышения лимита вы получите следующую ошибку:
{
"result" : "error",
"error_text" : "You have exceeded the allowed limit requests per second. In the next second request's counter will be automatically reset and you'll get access to the API.",
"error_code" : "EXCEEDED_LIMIT_PER_SECOND", // ЛИБО EXCEEDED_LIMIT_PER_HOUR
"error_data" : {},
"see_api_documentation" : "http://api.ps.kz/kzdomain/w...",
"input_params" : {
"command_name" : "kzdomain/whois",
"username" : "test",
"password" : "test",
"output_format" : "json",
"dname" : "ps.kz"
}
}
Скажите пожалуйста, есть ли тестовые логин и пароль для тестирования запросов/ответов?
Да конечно есть username=test&password=test либо username=test&password=<?php echo MD5('test') ; ?>
Всем методы в API имеют примеры запросов и ответов. Все примеры полностью работоспособны (они уже содержат тестовый логин и пароль, указывают формат запроса и формат ответа).
Будьте внимательны в примерах запрос для удобства восприятия разбит на несколько строк.
Поэтому перед тем как его отправлять в строку браузера, его необходимо склеить в одну строку.
Я для тестирования использую браузер Chrom'а, просто выделяю все строки и вставляю в адресную строку, он прекрасно все склеивает за меня.
Единственно не получится протестировать регистрацию и продление домена. Т.к. они сразу отправляют данные в казник и происходит финансовая проводка в нашей биллинговой ситеме.
Поэтому тестирование этих методов необходимо проводить на боевом аккаунте.
<?php
print_r(domainCheck('ps.kz'));
// RETURNS:
//Array
//(
// [ps.kz] => DOMAIN_ALREADY_EXISTS
//)
print_r(domainCheck(array('test-nod-123.kz','ps.kz','go.cn','jnet.kz')));
// RETURNS:
//Array
//(
// [test-nod-123.kz] => Available
// [ps.kz] => DOMAIN_ALREADY_EXISTS
// [go.cn] => DOMAIN_BAD_TLD
// [jnet.kz] => DOMAIN_ALREADY_EXISTS
//)
/**
* Проверить свободно ли доменное имя либо массив доменов.
*
* В параметр $domains можно передать строку с именем домена, либо
* индексный массив имён доменов (НЕ БОЛЕЕ 20 имён за раз, иначе рискуете не получить ответ).
* Например:
* $domains = 'ps.kz';
* либо
* $domains = array('test-nod-123.kz', 'ps.kz', 'go.cn', 'jnet.kz');
*
*
* В любом случае функция возвращаетт ассоциативный массив, где ключ имя домена,
* а значение это статус проверки. Например:
* return array(
* 'test-nod-123.kz'=>'Available',
* 'ps.kz'=>'DOMAIN_ALREADY_EXISTS',
* 'go.cn'=>'DOMAIN_BAD_TLD',
* 'jnet.kz'=>'DOMAIN_ALREADY_EXISTS',
* )
* Если функция вернула пустой массив, то произошла какая-то ошибка. Функция ошибки не отлавливает.
*
* @param string|array $domains
* @return array
*/
function domainCheck($domains){
if(!is_array($domains)){
$domains=(array)$domains;
}
// подготавливаем URL для отправки запроса
$url= requestPrepareUrl(
$username='test',
$password='test',
$requestData=array(
'controller'=>'kzdomain',
'action'=>'check',
'dname'=>$domains,
)
);
// делаем запрос данных на апи сервер
$data= requestRun($url);
if(is_array($data)){
if(isset($data['answer']['domains'])&&is_array($data['answer']['domains'])){
$result=array();
foreach($data['answer']['domains']as$val){
if($val['result']=='Available'){
$result[$val['dname']]='Available';
}else{
$result[$val['dname']]=$val['error_code'];
}
}
return$result;
}
}
returnarray();
}
/**
* Подготовить URL для обращения к API.
*
* Необходимо указать свой логин и пароль.
* В параметре $requestData значения controller и action являются обязательными.
* Например: $requestData = array('controller'=>'kzdomain', 'action'=>'check', 'dname'=>'ps.kz');
*
* @param string $user
* @param string $password
* @param array $requestData
* @return string
*/
function requestPrepareUrl($username,$password,array$requestData){
if(empty($requestData['controller'])||empty($requestData['action'])||!is_scalar($requestData['controller'])||!is_scalar($requestData['action'])){
throw new Exception('Incorrect $requestData. You not provide valid controller and action names.');
}
$url='https://api.ps.kz/'.$requestData['controller'].'/'.$requestData['action'];
$url.='?username='.urlencode($username);
$url.='&password='.urlencode($password);
$url.='&input_format=http&output_format=json';
unset($requestData['controller']);
unset($requestData['action']);
$url.='&'.http_build_query($requestData,'custom','&');
return$url;
}
/**
* Произвести запрос на указанный URL и вернуть данные в виде массива.
*
* @param string $url
* @throws Exception
* @return array
*/
function requestRun($url){
$c=curl_init();
curl_setopt($c, CURLOPT_URL,$url);
// задаем дополнительные настройки
curl_setopt($c, CURLOPT_RETURNTRANSFER,1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST,0);
$result=curl_exec($c);
$e_no=curl_errno($c);
$e_str=curl_error($c);
if($e_no>0){
throw new Exception('CURL error: '.$e_str.' ('.$e_no.')');
}
curl_close($c);
$data=@json_decode($result,true);
if(is_array($data)){
return$data;
}else{
returnarray();
}
}
?>
Заметил пару дней назад что
print_r(domainCheck('ps.kz'));
дает пустой массив
дайте знать как исправите СПАСИБО
Спасибо что написали об ошибке. Исправил. Проверьте.
Как можно получить логин и пароль?
Отравил заявку в отдел продаж, а там молчок.
В тот же день отправили по почте :)
будут ли АИПшки силами которых можно получить ftp логин создать субдомен и залить на сам сервер
К сожалению, такой функционал не планируется.
Как я понимаю вы говорите про Shared Hosting. Мы используем Parallel Plesk, у которого есть достаточно богатый API. Но достаточно сложно его будет пробросить через наш API. Надо учитывать, то что на сервере находятся другие клиенты и разделение доступа превращаются в семь кругов ада.
Т.к. у вас достаточно специфичная задача, то рекомендуем купить VPS хостинг, установить на него Parallel Plesk и пользоваться напрямую через их API.
все правильно ) есть одно но . Клиент покупает на нашем сайте хостинг и домен , далее он выбирает нужный ему шаблон оплачивает все и одним нажатием кнопки у него создается свой домен хостинг и ваш апи бросает все это на его хостинг
Не до конца понятна идея. Сейчас созвонюсь с Вами, попробую уточнить.
Попробовал позвонить по телефону, указанному в Вашем личном кабинете. Он недоступен.
Можете здесь более подробно объяснить Вашу идею или позвонить мне на +7-777-2258149
сейчас работаю над похожей ситуацией есть решение
Можно ли использовать существующий Plesk API для того чтобы автоматизировать работу с shared hosting купленным у вас?
Извиняюсь за долгий ответ.
Нет, к сожалению в данный момент это невозможно.
Тестовое сообщение для теста
Для повышения удобства технического взаимодействия клиентов и партнёров был разработан простой API поверх протокола HTTP. Который позволяет отправлять и принимать данные в трех самых популярных форматах: POST, JSON и XML. Отдавать данные в форматах JSON, XML и Array (обычный print_r php-массива).
Каждый вызов является атомарным и синхронным, то есть все запросы независимы друг от друга. Также все операции являются синхронными: результат операции возвращается сразу же, нет промежуточных состояний при выполнении операции. На данный момент для тестового пользователя разрешено не более 5 запросов в секунду и 1000 запросов в час.
Структура API построена так, что вызов метода и его описание находится по одному адресу, разница только в параметре format=(help|json|xml).
Например:
http://api.ps.kz/kzdomain/w... - вернет WHOIS домена ps.kz
если формат поменять на help, то вы тут же получите справку по этому методу:
http://api.ps.kz/kzdomain/w...
Я думаю это очень удобно.
Вобщем я на связи. Если есть вопросы и недочеты, прошу писать в комментарии.