В основе нашего API лежат несколько простых методов, в помощью которых Вы сможете:
Все методы принимают данные, отправленные методом POST.
Параметры запроса передаются в стандартном виде.
Каждый запрос в обязательном порядке требует передачу как минимум четырех основных параметров:
Пример простого скрипта для выполнения запроса по любому из описанных методов:
<?php
function curl($array){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => '{адрес нашего сервера API}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>$array,
CURLOPT_HTTPHEADER => array('Content-Type'=>'text/plain','Cookie'=>'PHPSESSID=a57b7c1303c88ea08fd34cce7a331d88')
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
$array=array(
"api_key"=>"{ключ API}",
"login"=>"{имя пользователя}",
"password"=>"{пароль}",
"action"=>"{наименование метода}"
);
echo json_encode($array);
echo "<pre>";
print_r(curl($array));
Метод предназначен для получения списка мастерских, привязанных к Вашему логину.
Для выполнения запроса достаточно передать параметр:
action: get_my_workshops
Других параметров в методе не предусмотрено.
В ответ сервер вернет массив JSON, содержащий перечень мастерских, доступных для работы.
Пример ответа:
[
{
"api_id": "123",
"legal_name": "Санкт-Петербург, Невский проспект, д.1",
"active": "1"
}
]
Метод предназначен для получения списка заявок по выбранной мастерской.
Для выполнения запроса нужно передать параметры:
action: get_my_workshops
api_id: идентификатор мастерской, полученный в методе get_my_workshops
В ответ сервер вернет JSON-массив, состоящий из списка заявок, созданных для выбранной мастерской, дата которых равна или больше текущей.
Пример ответа:
[
{
"id": 1,
"uniq_id": "545111",
"date": "17.02.2021",
"time": "09:00",
"lastname": "Иванов",
"name": "Иван",
"phone": "71234567890",
"carnumber": "123",
"storage": ""
},
{
"id": 2,
"uniq_id": "545112",
"date": "21.02.2021",
"time": "00:00",
"lastname": "Иванов",
"name": "Петр",
"phone": "71234567890",
"carnumber": "234",
"storage": "КАР-000000"
}
]
Метод get_available_services предназначен для получения списка кодов услуг, доступных для выбранной мастерской.
Для выполнения запроса нужно передать параметры:
action: get_available_services
api_id: идентификатор мастерской, полученный в методе get_my_workshops
В ответ сервер возвращает JSON-массив, содержащий набор кодов услуг и их расшифровку.
Пример ответа:
[
{
"service_code": "01",
"service_name": "получение комплекта + шиномонтаж"
},
{
"service_code": "02",
"service_name": "записаться на шиномонтаж"
}
]
Метод предназначен для получения списка доступного для записи времени.
Для выполнения запроса нужно передать параметры:
action: get_available_times
api_id: идентификатор мастерской, полученный в методе get_my_workshops
service_code: идентификатор вида услуги, полученный в методе get_available_services
show_busy: true/false
В ответ сервер вернет JSON-массив дат и возможного времени на две недели вперед от первой доступной даты. При show_busy, установленном в положение true, сервер вернет полный список возможного времени, а при false - исключит из ответа занятое время.
Пример ответа:
{
"17.02.2021": [
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00"
],
"18.02.2021": [
"07:00",
"08:00",
"09:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00"
]
}
Метод предназначен для создания новой заявки.
Для выполнения запроса нужно передать параметры:
action: get_available_times
api_id: идентификатор мастерской, полученный в методе get_my_workshops
service_code: идентификатор вида услуги, полученный в методе get_available_services
date: дата заявки в формате ДД.ММ.ГГГГ, полученная в методе get_available_times
time: время заявки в формате ЧЧ:ММ, полученное в методе get_available_times
name: имя клиента
lastname: фамилия клиента
carnumber: номер машины клиента в формате Х123ХХ178, либо 123
phone: телефон клиента в формате 7ХХХХХХХХХХ
storage: номер комплекта хранения
В результате выполнения запроса сервер либо создаст новую запись с указанными данными, либо вернет ошибку.
Значения параметров date и time должны строго соответствовать полученным в get_available_times. В противном случае метод вернет ошибку.
Параметр storage является необязательным для service_code, равного "05".
401 - Пароль не верный.
Переданный Вами пароль не соответствует заданному для Вашего логина. Проверьте корректность ввода, затем свяжитесь с нами для уточнения данных для доступа.
402 - Пользователь не найден
Заданное Вами имя пользователя не найдено в базе. Проверьте корректность ввода, затем свяжитесь с нами для уточнения данных для доступа.
403 - Ключ API не действителен
Иногда ключ API может устаревать. Если это будет происходить, мы обязательно уведомим Вас заблаговременно.
405 - Мастерская не найдена
Переданное Вами значение api_id не соответствует ни одной из Ваших мастерских, либо мастерская не активна.
419 - Код сервиса не существует или не соответствует выбранной мастерской.
Передаваемое Вами значение service_code не корректно или отсутствует в выдаче get_available_services для выбранной мастерской.
420 - Указанное время не доступно для записи
Переданное Вами сочетание date и time более не доступно для записи, либо не соответствует перечисленным в ответе метода get_available_times
421 - Не передана фамилия
Для создания заявки передача фамилии клиента является обязательной.
422 - Не передано имя
Для создания заявки передача имени клиента является обязательной.
423 - Не передан телефон
Для создания заявки передача телефона клиента является обязательной.