Общие принципы нашего API

В основе нашего API лежат несколько простых методов, в помощью которых Вы сможете:

  • Просмотреть список своих мастерских
  • Получить список заявок с данными клиентов и временем записи
  • Получить список свободного времени для выбранной мастерской на две недели вперед
  • Создать новую заявку

Все методы принимают данные, отправленные методом POST.

Параметры запроса передаются в стандартном виде.

Каждый запрос в обязательном порядке требует передачу как минимум четырех основных параметров:

  • api_key - уникальный ключ для использования API. Выдается при подключении к системе;
  • login - Ваш уникальный логин для авторизации. Выдается при подключении к системе;
  • password - пароль для доступа. Выдается при подключении к системе;
  • action - название метода.

Пример простого скрипта для выполнения запроса по любому из описанных методов:

<?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));

Метод get_my_workshops

Метод предназначен для получения списка мастерских, привязанных к Вашему логину.
Для выполнения запроса достаточно передать параметр:
action: get_my_workshops
Других параметров в методе не предусмотрено.
В ответ сервер вернет массив JSON, содержащий перечень мастерских, доступных для работы.
Пример ответа:
[
 {
   "api_id": "123",
   "legal_name": "Санкт-Петербург, Невский проспект, д.1",
   "active": "1"
 }
]

Метод get_workshop_orderslist

Метод предназначен для получения списка заявок по выбранной мастерской.

Для выполнения запроса нужно передать параметры:
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

Метод get_available_services предназначен для получения списка кодов услуг, доступных для выбранной мастерской.
Для выполнения запроса нужно передать параметры:
action: get_available_services
api_id: идентификатор мастерской, полученный в методе get_my_workshops

В ответ сервер возвращает JSON-массив, содержащий набор кодов услуг и их расшифровку.

Пример ответа:
[
 {
 "service_code": "01",
 "service_name": "получение комплекта + шиномонтаж"
 },
 {
 "service_code": "02",
 "service_name": "записаться на шиномонтаж"
}
]

Метод get_available_times

Метод предназначен для получения списка доступного для записи времени.

Для выполнения запроса нужно передать параметры:
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"
 ]
}

Метод create_order

Метод предназначен для создания новой заявки.

Для выполнения запроса нужно передать параметры:
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 - Не передан телефон
Для создания заявки передача телефона клиента является обязательной.