Команды получения общих данных из стандартных справочников, для выполнения которых Не требуется сессия.
CAPTCHA. CAPTCHA
Регистрация. ModernRegistrationVerified
Восстановление пароля. ModernRememberPwdVerified
Авторизация. ModernLogin
Авторизация. AuthByAddon
Авторизация. Login
Обновление ID сессии. RefreshSession
Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount
Версия API. api_version
Группы клиентов. ContrTree
Прайс-лист. PriceList
Группы прайс-листа. PriceTree
Дополнительные реквизиты. AddonTypes
Комплекты доп. реквизитов. AddonPacks
Склады. ReceptionCenters
Регионы (районы). Regions
Статус заказа. GetStatusOrder
Свободное время начала выезда на дату. TripsHr
Свободное время окончания выезда на дату. TripsHrTo
Список выездных машин. Cars
CAPTCHA используется для защиты команд, которые требуют дополнительного подтверждения действия пользователем, например отправки SMS-кода или выполнения новой защищенной команды.
При запросе сервер:
CaptchaID=<server_guid>CaptchaID не передается параметром URL и не должен формироваться клиентом.
Время жизни
CAPTCHA действует 5 минут (300 секунд) после генерации.
Ограничения:
Метод запроса: GET
HTTP-заголовк:
X-AGBIS-App-Token: agb1.<key_id>.<secret>
https://himinfo.ru/him_general_php/api/captcha_common.php
где
X-AGBIS-App-Token - учётные данные конкретного приложения, работающего с API Himinfo, обязательтный параметр. Токен принадлежит определённой химчистке. Сервер не позволит выполнить команду, если app token указан некорректно. agb1 - ключ без изменений, <key_id> и - выдаются при подключении API, обратитесь в Агбис. Нельзя передавать в query string, JSON команды или другие параметры URL.
Ответ:
| HTTP-код | Заголовок | Значение |
|---|---|---|
204 No Content |
X-Captcha-Required: 0 |
CAPTCHA не требуется. Экран CAPTCHA следует пропустить |
200 OK |
X-Captcha-Required: 1 |
CAPTCHA требуется. Ответ содержит HTML для отображения |
403 Forbidden |
— | Химчистка или настройки приложения не прошли проверку |
405 Method Not Allowed |
— | Использован метод, отличный от GET |
Только код 204 означает, что CAPTCHA можно пропустить.
При ответе 200 сервер самостоятельно выбирает настроенный тип CAPTCHA.
Полученный HTML является самодостаточным и содержит необходимые стили, JavaScript и изображения. Его нужно открыть в WebView или iframe без изменения содержимого.
После действия пользователя родительская страница или мобильное приложение запрашивает значение CAPTCHA сообщением:
window.postMessage({ type: "captcha_request_value" }, "*");
Также можно вызвать экспортированную HTML-страницей функцию:
window.himinfoCaptchaRequestValue();
Для React Native страница возвращает результат через:
window.ReactNativeWebView.postMessage(JSON.stringify(payload));
Формат успешного результата:
{
"version": 2,
"type": "captcha_value",
"captchaId": "<64 hex characters>",
"captchaValue": "<value>"
}
Если получено сообщение с type = captcha_error, текущую CAPTCHA необходимо закрыть и загрузить новую страницу через captcha_common.php.
Для вызова API используются только captchaId и captchaValue.
Проверка
При выполнении защищенной команды клиент передает, в командах ModernRegistrationVerified, ModernRememberPwdVerified, только введенный пользователем код:
&CaptchaValue=<код с картинки>
CaptchaID передается автоматически через cookie.
В запросе должны быть:
Cookie: CaptchaID=<server_guid>
Либо указать HTTP заголово
CaptchaID: <server_guid>
Клиент не должен передавать CaptchaID в GET/POST-параметрах.
Условия успешной проверки
CAPTCHA считается пройденной, если:
Ошибки проверки
Проверка завершается ошибкой, если:
Для ошибок используется код:
{"error":116,"Msg":"Ошибка проверки CAPTCHA"}
В ответе может передаваться уточняющий текст, который фронт может показать пользователю.
Команда: ModernRegistrationVerified
Регистрация клиента в Личном кабинете химчистке.
<WRAP center round important 60%>Ограничение на выполнение, не больше 3 запросов за 10 секунд с одного IP.
В противном случает будет выдано предупреждение слишком частые запросы, с увеличением времени ожидания</WRAP>
Метод отправки: GET
HTTP-заголовк:
X-AGBIS-App-Token: agb1.<key_id>.<secret>
где
X-AGBIS-App-Token - учётные данные конкретного приложения, работающего с API Himinfo, обязательтный параметр. Токен принадлежит определённой химчистке. Сервер не позволит выполнить команду, если app token указан некорректно. agb1 - ключ без изменений, <key_id> и - выдаются при подключении API, обратитесь в Агбис. Нельзя передавать в query string, JSON команды или другие параметры URL.
Формат запроса:
ModernRegistrationVerified={"fio": "Тест Тестовый", "phone": "+79123456789", "email": "test@test.com"}&CaptchaValue=аб12в
Строка запроса:
GET .../api/?ModernRegistrationVerified=%7B%22phone%22%3A%22%2B79123456789%22%2C%22fio%22%3A%22%D0%A2%D0%B5%D1%81%D1%82%20%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%22%7D&CaptchaValue=%D0%B0%D0%B112%D0%B2
где
CaptchaValue - GET параметр, введенный пользователем с картинко код капчи, обязательный параметр;
phone - телефон клиента (логин), обязательный параметр;
fio - ФИО клиента, не обязательный параметр;
email - Email клиента, не обязательный параметр;
gender - пол клиента (0 - мужской - по умолчанию, 1 - женский), не обязательный параметр;
birthday - дата рождения, не обязательный параметр;
address - адрес клиента, не обязательный параметр;
agree_to_receive_sms - согласие на получение сообщения о готовности заказа (1 - согласен, 0 - не согласен), не обязательный параметр.
По умолчанию берется из опции GL_DISABLE_ALLOW_SMS - "Справочники:Отключить согласие на смс по заказам";
agree_to_receive_adv_sms - согласие на получение рекламных и поздравительных сообщений (1 - согласен, 0 - не согласен), не обязательный параметр.
По умолчанию берется из опции GL_DISABLE_ALLOW_SPAMSMS - "Справочники:Отключить согласие на смс рекламу";
agree_sms_order_reps - согласие на получение квитанции и изменений в заказе (1 - согласен, 0 - не согласен), не обязательный параметр.
По умолчанию берется из опции GL_DISABLE_ALLOW_SMS_ORDER_REPS - "СПРАВОЧНИКИ: Отключить согласие на смс об изменениях";
registered_from - приложение, из которого пришел запрос на регистрацию, не обязательный параметр.
Варианты значений registered_from:
1 - МП ХимчисткаИнфо;
2 - Чистомат;
3 - Агент химчистки;
4 - ЛК;
5 - ПМП;
6 - Коммерческое API;
7 - web форма консьержа/выездов;
8 - брендированное приложение.
Можно передавать пользовательские значения, они должны быть больше 1000 (например, регистрация в мобильном приложении iOS - 1001, регистрация в мобильном приложении Android - 1002).
Ответ json:
// При успешной регистрации {
"error": 0,
"Msg": "СМС сообщение с кодом отправлено"
}
// При нахождении телефона на другом клиенте {
"error": 1,
"Msg": "Данный номер телефона уже зарегистрирован. Попробуйте восстановить пароль"
"contr_id": "1234",
"exists": "1"
}
где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения;
Если текст сообщения "Вы зарегистрированы", значит для Вас не настроен шаблоны СМС для ЛК, обратитесь в клиентский сервис.
{.is-warning}
contr_id - ID клиента;
exists - признак что телефон уже занят другим клиентом.
Для отправки сообщений предусмотрена блокировка.
Последовательность разрешенных отправок:
Первая- 1 минута
Вторая- 3 минуты
Третья - 5 минут
Четвертая - 10 минут
После cooldown четвертой отправки пятый запрос:
SMS не отправляет;
Устанавливает карантин на 60 минут;
Возвращает ошибку 115.
Запросы во время карантина:
Не увеличивают счеткчик;
Не продлевают карантин;
Возвращают ошибку 115 с оставшимся временем.
Серия сбрасывается:
После завершения 60-минутного карантина;
Если после последней разрешенной отправки прошло больше 60 полных минут
После сброса текущий запрос считается первой разрешенной отправкой и устанавилвает cooldown на одну минуту.
Команда: ModernRememberPwdVerified
Восстановление пароля клиентом, зарегистрированного в Личном кабинете.
<WRAP center round important 60%>Ограничение на выполнение, не больше 3 запросов за 10 секунд с одного IP и .
В противном случает будет выдано предупреждение слишком частые запросы, с увеличением времени ожидания</WRAP>
Метод отправки: GET
HTTP-заголовк:
X-AGBIS-App-Token: agb1.<key_id>.<secret>
где
X-AGBIS-App-Token - учётные данные конкретного приложения, работающего с API Himinfo, обязательтный параметр. Токен принадлежит определённой химчистке. Сервер не позволит выполнить команду, если app token указан некорректно. agb1 - ключ без изменений, <key_id> и - выдаются при подключении API, обратитесь в Агбис. Нельзя передавать в query string, JSON команды или другие параметры URL.
Формат запроса:
ModernRememberPwdVerified={"phone":"+79123456789"}&CaptchaValue=аб12в
Строка запроса:
GET .../api/?ModernRememberPwdVerified=%7B%22phone%22%3A%20%22%2B79123456789%22%7D&CaptchaValue=%D0%B0%D0%B112%D0%B2
где
CaptchaValue - GET параметр, введенный пользователем с картинко код капчи, обязательный параметр;
phone - телефон клиента, обязательный параметр.
Ответ json:
{
"error": 0,
"Msg": "СМС сообщение с кодом отправлено"
}
где
error - код выполнения, 0 - успешно, 1 - ошибка;
Если текст сообщения "Вы зарегистрированы", значит для Вас не настроен шаблоны СМС для ЛК, обратитесь в клиентский сервис.
Для отправки сообщений предусмотрена блокировка.
Последовательность разрешенных отправок:
Первая- 1 минута
Вторая- 3 минуты
Третья - 5 минут
Четвертая - 10 минут
После cooldown четвертой отправки пятый запрос:
SMS не отправляет;
Устанавливает карантин на 60 минут;
Возвращает ошибку 115.
Запросы во время карантина:
Не увеличивают счеткчик;
Не продлевают карантин;
Возвращают ошибку 115 с оставшимся временем.
Серия сбрасывается:
После завершения 60-минутного карантина;
Если после последней разрешенной отправки прошло больше 60 полных минут
После сброса текущий запрос считается первой разрешенной отправкой и устанавилвает cooldown на одну минуту.
Команда: ModernLogin
Авторизация по номеру телефона в Личном кабинете для получения клиентской сессии. Используется вместе с командой регистрации ModernRegistrationVerified.
Метод отправки: GET
Формат запроса:
ModernLogin={"phone": "+79123456789", "pwd": "7110eda4d09e062aa5e4a390b0a572ac0d2c0220"}
Строка запроса:
GET .../api/?ModernLogin=%7B%22phone%22%3A%20%22%2B79123456789%22%2C%20%22pwd%22%3A%20%227110eda4d09e062aa5e4a390b0a572ac0d2c0220%22%7D
где
phone - номер телефона клиента, обязательный параметр;
pwd – пароль, преобразованный с помощью SHA1, обязательный параметр.
Ответ json:
{
"error":0,
"Session_id":"F3967266-DDAE-4524-A8AB-7BCDF79A97F1",
"contr_id":"10013",
"promo_code_friend":""
}
где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения в случае ошибки.
Session_id - ID сессии авторизованного клиента;
contr_id - ID клиента;
promo_code_friend - промо-код.
Команда: AuthByAddon
Авторизация по значению дополнительного реквизита в Личном кабинете для получения клиентской сессии.
Метод отправки: GET
Формат запроса:
AuthByAddon={"id_addon":100245,"login":"00000001","psw":"40bd001563085fc35165329ea1ff5c5ecbdbbeef"}
Строка запроса:
GET .../api/?AuthByAddon=%7B%22id_addon%22%3A100245%2C%22login%22%3A%2200000001%22%2C%22psw%22%3A%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%7D
где
id_addon - вн.номер дополнительного реквизита, обязательный параметр;
login - значение дополнительного реквизита, обязательный параметр;
psw – пароль, преобразованный с помощью SHA1, обязательный параметр.
Ответ json:
{
"error":0,
"Session_id":"F3967266-DDAE-4524-A8AB-7BCDF79A97F1",
"contr_id":"10013",
"promo_code_friend":""
}
где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения в случае ошибки.
Session_id - ID сессии авторизованного клиента;
contr_id - ID клиента;
promo_code_friend - промо-код.
Команда: Login
Команда авторизации под пользователем.
Команда возвращает сессию Session_id, которая используется в командах с пользовательской сессией.
Сессия активна в течении 10 мин. После будет возвращен код ошибки error = 3, после чего нужно выполнить команду #RefreshSession и повторить команду снова.
{.is-info}
В противном случает будет выдано предупреждение "429 Too many requests" на 2 минуты.</WRAP>
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
Login={"User": "Пользователь", "Pwd": "40bd001563085fc35165329ea1ff5c5ecbdbbeef", "AsUser": "1"}
Строка запроса:
GET .../api/?Login=%7B%22User%22%3A+%22%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%22%2C+%22Pwd%22%3A+%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%2C+%22AsUser%22%3A+%221%22%7D
где
User – имя пользователя, обязательный параметр;
Pwd – пароль пользователя (преобразованный через SHA-1) , обязательный параметр;
<WRAP center round important 60%> В качестве User / Pwd используются данные (логин/пароль) пользователя Агбис.Химчистка (в программе Агбис.Химчистка, меню «Справочники»-«Пользователи»).
Рекомендуется создать отдельного пользователя для работы с API.
</WRAP>
AsUser – признак пользователя коммерческого api (равен 1), обязательный параметр.
Ответ json:
{
"error": 0,
"Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
"Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4",
"User_ID": "123"
}
где
Session_id – ID сессии. Время жизни сессии 10 минут;
Refresh_id – ключ обновления сессии без авторизации;
User_ID – ID пользователя.
Команда: RefreshSession
Обновление ID сессии пользователя.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
RefreshSession={"Refresh_ID": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"}
Строка запроса:
GET .../api/?RefreshSession=%7B%22Refresh_ID%22%3A+%22D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4%22%7D
где
Refresh_ID – берется из команды Login, обязательный параметр.
Ответ json:
{
"error": 0,
"Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
"Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"
}
где
Session_id – новый ID сессии;
Refresh_id – новый ключ обновления сессии без авторизации.
Команда: ExecutedApiCount
Общая команда просмотра статистики количества выполненных коммерческих команд API.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
ExecutedApiCount
Строка запроса:
GET .../api/?ExecutedApiCount
Ответ json:
{
"error": 0,
"date_list": [
{
"date": "02.12.2017",
"count": "15"
},
{
"date": "03.12.2017",
"count": "35"
},
{
"date": "04.12.2017",
"count": "5"
}
]
}
где
date – дата;
count – количество запросов.
Команда: api_version
Вернет версию api. Параметры команды отсутствуют.
Метод отправки: GET
Формат запроса:
api_version
Строка запроса:
GET .../api/?api_version
Ответ json:
{"api_version": "1.4"}
Команда: ContrTree
Получение списка групп клиентов.
Используется, например, если необходимо воспроизвести группы клиентов из Агбис.Химчистка
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
ContrTree
Строка запроса:
GET .../api/?ContrTree
Ответ json:
{
"error": 0,
"list": [
{
"folder_id": "21",
"parent_id": "",
"name": "%D0%9A%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D1%8B",
"price_id": "1"
},
{
"folder_id": "24",
"parent_id": "21",
"name": "%D0%A7%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B5%20%D0%BB%D0%B8%D1%86%D0%B0",
"price_id": "1"
},
{
"folder_id": "25",
"parent_id": "21",
"name": "%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8",
"price_id": "1"
}
]
}
где
folder_id – ID группы;
parent_id – ID родителя группы;
name – наименование группы;
price_id – ID прайс-листа группы.
Команда: PriceList
Получение прайс-листа.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
PriceList={"price_id":"12"}
Строка запроса:
GET .../api/?PriceList=%7B%22price_id%22:%2212%22%7D
где
price_id – ID прайс-листа, необязательный параметр. Если не указан, то по умолчанию выдается розничный прайс-лист;
tovar_type - тип отображаемой позиции, необязательный параметр (0 - все товары и услуги, 1 - только товары, 2 - только услуги, по умолчанию).
Ответ json:
{
"error": 0,
"price_list":[
{
"id": "1",
"folder_id": "10026",
"tovar_type": "2",
"code": "0",
"name": "%D0%91%D0%BB%D1%83%D0%B7%D0%BA%D0%B0",
"unit": "1%20%D1%88%D1%82",
"price": "132,69",
"group_p": "%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B8",
"group_c": "%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
"top_parent": "%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C",
"order_addon_pack_id": "5",
"sort_index": "",
"is_price_editable": "1",
"is_not_for_discount": "0",
"is_repair": "0",
"is_percent_price": "0",
"additional_text": "",
"short_name": "",
"index": "",
"image_id": "0",
"own_times": "0",
"duration": "0",
"price_id": "0"
}
]
}
Команда: PriceTree
Группы прайс-листа.
Метод отправки: GET.
Заголовок запроса (Header): не требуется.
Формат запроса:
PriceTree={"id":"12"}
Строка запроса:
GET .../api/?PriceTree=%7B%22id%22:%2212%22%7D
где
id – ID прайс-листа, обязательный параметр.
Ответ json:
{
"error": 0,
"price":[
{
"folder_id":"10025",
"parent":"10024",
"name":"1.+%D0%9A%D0%BE%D0%B6%D0%B0+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
"duration": "2"
"comm":"",
"sort_index":""
}
]
}
Где
price - массив объектов групп прайс листа:
folder_id – ID группы;
parent – ID родительской группы;
name – название группы;
duration - срок исполнения (дней);
comm – комментарий;
sort_index - индекс сортировки.
Команда: AddonTypes
Получение дополнительных реквизитов.
Метод отправки: GET
Формат запроса:
AddonTypes
Строка запроса:
GET .../api/?AddonTypes
Ответ json:
{
"error":0,
"addon_types":[
{
"id":"90",
"group_id":"1",
"table_name":"DOC_ORDER_SERVICES",
"descr":"%D0%A1%D0%BB%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F%20(%D1%80%D1%83%D1%87%D0%BD%D0%B0%D1%8F)%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0",
"value_type":"2",
"default_int":"",
"default_str":"",
"default_bool":"0",
"default_date":"",
"default_flt":"",
"is_default_need":"1",
"if_null_message":"",
"print_if_empty":"0",
"change_price":"2",
"num":"1,5",
"is_combo":"0",
"fullcol":"0",
"multisel":"0",
"font_color":"",
"font_bold":"",
"multipl":"",
"hide_item_groups":"",
"auto_item_groups":"",
"auto_maximize":"",
"not_manual_editing":"",
"change_pr_serv":"",
"dont_disc_value":"",
"chang_value":"",
"affect_user":"",
"show_display":"",
"show_difaddon":"",
"specify_wp":"",
"comments":"",
"only_manager":"",
"addon_str_values":[
]
},
...
]
}
где
addon_types - Массив объектов доп. реквизитов:
id - ID доп. реквизита;
group_id- ID группы доп. реквизита (1 - Описание изделия, 2 - Дефекты изделия, 3 - Дефекты сырья, 4 - Предупреждения, 5 - Иные дефекты);
descr - наименование доп. реквизита;
value_type - тип доп. реквизита (0 - целое, 1 - строка, 2 - логическое, 3 - дата, 5 - вещественное, 6 - метка (без значения), 7 - строковые с ценой и количеством, 8 - Строковые с коэффициентом, 9 - Фигура);
default_int - числовое значение по умолчанию (при value_type = 0);
default_str - сроковое значение по умолчанию (при value_type = 1);
default_bool - логическое значение по умолчанию (при value_type = 2);
default_date - дата по умолчанию (при value_type = 3);
default_flt - вещественное значение по умолчанию (при value_type = 5);
comments - комментарий;
multisel - включен множественный выбор значений;
font_color - цвет текста;
font_bold - жирный шрифт;
specify_wp - реквизит для уточнения на рабочем месте;
addon_str_values - Массив для выбора строк у доп. реквизита (при value_type = 1, 7, 8, 9):
id - ID строки;
для типа value_type = 1, 7 и 8:
value_str - строковое описание;
value_flt - числовое значение;
для типа value_type = 9:
value_str - описание типа фигуры;
value_flt - ID типа фигуры (1 - Квадрат, 2 - Прямоугольник, 3 - Круг, 4 - Овал).
Команда: AddonPacks
Получение комплектов дополнительных реквизитов.
Метод отправки: GET
Формат запроса:
AddonPacks
Строка запроса:
GET .../api/?AddonPacks
Ответ json:
{
"error":0,
"addon_packs":[
{
"id":"60",
"name":"16.%20%D0%9C%D0%B5%D0%BB%D0%BA%D0%B8%D0%B9%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%20%D1%88%D0%B2%D0%B5%D0%B9%D0%BD%D1%8B%D1%85%20%D0%B8%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D0%B9",
"addon_types":[
2,
109,
181,
225,
226,
227,
228
]
},
...
]
}
где
addon_packs - массив объектов комплектов:
id - ID комплекта;
name - наименование комплекта;
addon_types - Массив ID доп. реквизитов, входящих в комплект, из команды #AddonTypes.
Команда: ReceptionCenters
Получение списка складов (приёмные пункты).
Метод отправки: GET
Формат запроса:
ReceptionCenters={"with_photo":"1","folders":"1,2,3","lang_id":"0"}
Строка запроса:
GET .../api/?ReceptionCenters=%7B%22with_photo%22%3A%221%22%2C%22folders%22%3A%221%2C2%2C3%22%2C%22lang_id%22%3A%220%22%7D
где
with_photo - признак получать список приемных пунктов с фото (не обязательный);
folders - список групп приёмных пунктов (не обязательный);
lang_id - язык перевода (не обязательный);
Ответ json:
{
"error":0,
"list":[
{
"id":"1",
"name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
"address":"%D0%BF%D1%80-%D1%82%20%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D1%83%D1%80%D0%B3%D0%BE%D0%B2%2043-23",
"working_hours":"",
"phone":"999-999-999-999",
"group":"%D0%92%D0%BD%D0%B5%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF",
"location":"53.764419,87.117967",
"cabinet": "0",
"folder_id":"1"
"name_for_clients": "%D0%A5%D0%B8%D0%BC%201",
"use_himinfo": "1",
"city": "%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA",
"comment": "",
"metro": "",
"district_id":"1002",
"working_days": "1%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C2%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C3%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C4%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C5%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C6%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C7%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-",
"is_work_shop": "0",
"sclad_is_mobil": "0",
"sclad_not_automated": "0",
"photo": "",
"sclad_type_id": "1"
}
]
}
где
list - массив объектов складов:
id - ID склада;
name - наименование склада;
address - адрес склада;
working_hours - время работы;
phone - телефон склада;
group - группа склада;
location - геолокация, если вкл. определение геолокации;
cabinet - признак склад Чистомат;
folder_id - ID группы склада;
name_for_clients - название склада для ХимИнфо;
use_himinfo - признак отображения склада на Химинфо, значение 0 или 1;
city - город склада;
comment - комментарий по складу;
metro - ближайшее метро до склада;
district_id - номер района;
working_days - рабочие дни склада;
is_work_shop - признак склад является цехом;
sclad_is_mobil - признак мобильный приемный пункт;
sclad_not_automated - признак неавтоматизированный приемный пункт;
photo - фото склада в строке base64;
sclad_type_id - тип приемного пункта.
Команда: Regions
Получение списка регионов (районы).
Метод отправки: GET.
Заголовок запроса (Header): не требуется.
Формат запроса:
Regions
Строка запроса:
GET .../api/?Regions
Ответ json:
{
"error":0,
"regions":[
{
"id":"1002",
"name":"test"
}
]
}
где
regions - массив объектов регионов:
id – ID региона;
name – наименование региона.
Команда: GetStatusOrder
Поиск статуса заказа по номеру заказа.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
GetStatusOrder={"doc_num":"12345"}
Строка запроса:
GET .../api/?GetStatusOrder=%7B%22doc_num%22%3A%2212345%22%7D
где
doc_num – номер заказа, обязательный параметр.
Ответ json:
{
"error": 0,
"Msg": "%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9",
"sclad_to": "123",
"status_id": "4"
}
где
Msg – статус;
sclad_to – склад приема;
status_id – ID статуса.
Команда: TripsHr
Свободное время начала выезда на дату. Для задания корректного времени параметра hr для команды TripOrder.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
TripsHr={"date": "01.01.2020", "car_id": "2", "id": "123"}
Строка запроса:
GET .../api/?TripsHr=%7B%22date%22%3A%2201.01.2020%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D
где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.
Ответ json:
{
"error": 0,
"hr": [
"00:00",
"01:00",
"02:00",
"03:00",
"04:00",
"05:00",
"06:00",
"07:00",
"08:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"18:00",
"19:00",
"22:00",
"23:00"
]
}
где
hr - массив строк не занятым временем выезда.
Команда: TripsHrTo
Свободное время окончания выезда на дату. Для задания корректного времени параметра hr_to для команды TripOrder.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
TripsHrTo={"date": "01.01.2020", "hr_to": "12:00", "car_id": "2", "id": "123"}
Строка запроса:
GET .../api/?TripsHrTo=%7B%22date%22%3A%2201.01.2020%22%2C%22hr_to%22%3A%2212%3A00%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D
где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
hr_to – предполагаемое время окончания (Формат – "10:00", "07:00"), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.
Ответ json:
{
"error": 0,
"hr_to": [
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00",
"23:59"
]
}
где
hr_to - массив строк не занятым временем окончания выезда.
Команда: Cars
Список выездных машин (выездные ПП)
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
Cars
Строка запроса:
GET .../api/?Cars
Ответ json:
{
"error": 0,
"cars": [
{
"id": "10010",
"name": "%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BA%D0%BB%D0%B0%D0%B4",
"address": "",
"phone": "",
"price_list_id": ""
}
]
}
где
cars - массив складов/пп:
id – ID склада/пп;
name – название склада/пп;
address - адрес склада/пп;
phone - телефон склада/пп;
price_list_id - ID прайс листа склада/пп.
Команда: PromoCode
Проверка промо-кода. Вернет список рабочих адресов для существующего промо-кода, если они указаны.
Метод отправки: GET
Заголовок запроса (Header): не требуется.
Формат запроса:
PromoCode={"promo":"123"}
где
promo - проверяемый промо-код.
Строка запроса:
GET .../api/?PromoCode=%7B%22promo%22%3A%22123%22%7D
Ответ json:
{
"error": 0,
"promo_code_id": "10021",
"working_address": [
{
"id": 1004,
"promo_code_id": 10021,
"address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%201"
},
{
"id": 1005,
"promo_code_id": 10021,
"address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%202"
}
]
}
где
id – ID адреса промо-кода;
promo_code_id – ID промо-кода;
address – адрес промо-кода.