мета-данные страницы
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
api [15.02.2024 14:45] FeLDMaRShaL |
api [27.04.2024 14:40] (текущий) Anatoly [Оглавление] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Api ====== | + | ====== Документация по Api ====== |
===== Api Личного кабинета версии 1.4 ===== | ===== Api Личного кабинета версии 1.4 ===== | ||
Строка 6: | Строка 6: | ||
[[#Описание API|Описание API]]\\ | [[#Описание API|Описание API]]\\ | ||
[[#Формат команд|Формат команд]]\\ | [[#Формат команд|Формат команд]]\\ | ||
+ | [[#Примеры интеграции]]\\ | ||
[[#Коды ошибок API|Коды ошибок API]]\\ | [[#Коды ошибок API|Коды ошибок API]]\\ | ||
[[#Авторизация|Авторизация]]\\ | [[#Авторизация|Авторизация]]\\ | ||
Строка 11: | Строка 12: | ||
[[#Работа с выездами|Работа с выездами]]\\ | [[#Работа с выездами|Работа с выездами]]\\ | ||
[[#Работа со статистикой ЛК|Работа со статистикой ЛК]]\\ | [[#Работа со статистикой ЛК|Работа со статистикой ЛК]]\\ | ||
+ | [[#Устаревшие команды|Устаревшие команды]]\\ | ||
+ | ---- | ||
<hidden Команды API> | <hidden Команды API> | ||
[[#Версия API. api_version|Версия API. api_version]]\\ | [[#Версия API. api_version|Версия API. api_version]]\\ | ||
Строка 31: | Строка 34: | ||
[[#Квитанция. ReceiptOnline|Квитанция. ReceiptOnline]]\\ | [[#Квитанция. ReceiptOnline|Квитанция. ReceiptOnline]]\\ | ||
[[#Квитанция. Receipt|Квитанция. Receipt]]\\ | [[#Квитанция. Receipt|Квитанция. Receipt]]\\ | ||
- | [[#Подписанная квитанция. SingReceipt|Подписанная квитанция. SingReceipt]]\\ | + | [[#Подписанная квитанция. SingReceipt|Подписанная квитанция. SingReceipt]]\\ |
- | [[#Фотографии заказа. OrderImages|Фотографии заказа. OrderImages]]\\ | + | [[#Список фотографий по заказу. OrderImagesModern|Список фотографий по заказу. OrderImagesModern]]\\ |
- | [[#Фотографии по заказу. OrderImagesModern|Фотографии по заказу. OrderImagesModern]]\\ | + | [[#Фотографии по заказу. PhotoOnline|Фотографии по заказу. PhotoOnline]]\\ |
[[#Оплата депозитом. DepositPay|Оплата депозитом. DepositPay]]\\ | [[#Оплата депозитом. DepositPay|Оплата депозитом. DepositPay]]\\ | ||
[[#Оплата бонусом. BonusPay|Оплата бонусом. BonusPay]]\\ | [[#Оплата бонусом. BonusPay|Оплата бонусом. BonusPay]]\\ | ||
Строка 76: | Строка 79: | ||
[[#Список команд|Список команд]]\\ | [[#Список команд|Список команд]]\\ | ||
</ifauth> | </ifauth> | ||
+ | ---- | ||
+ | ==== Устаревшие команды ==== | ||
+ | [[#Фотографии заказа. OrderImages|Фотографии заказа. OrderImages]]\\ | ||
---- | ---- | ||
===== Описание API ===== | ===== Описание API ===== | ||
Строка 107: | Строка 113: | ||
//**В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.**// | //**В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.**// | ||
+ | ---- | ||
+ | ===== Примеры интеграции ===== | ||
+ | |||
+ | **Пример запросов на php:** | ||
+ | |||
+ | <sxh php> | ||
+ | $curl = curl_init(); | ||
+ | |||
+ | curl_setopt_array($curl, [ | ||
+ | CURLOPT_URL => "//himinfo.ru/cl/{Path}/api/?command=".urlencode('{"param1": "{$param1}", "param2": "{$param2}", "param3": "{$param3}"}'), | ||
+ | CURLOPT_RETURNTRANSFER => true, | ||
+ | CURLOPT_ENCODING => "", | ||
+ | CURLOPT_MAXREDIRS => 10, | ||
+ | CURLOPT_TIMEOUT => 30, | ||
+ | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | ||
+ | CURLOPT_CUSTOMREQUEST => "GET", | ||
+ | CURLOPT_POSTFIELDS => "", | ||
+ | ]); | ||
+ | |||
+ | $response = curl_exec($curl); | ||
+ | $err = curl_error($curl); | ||
+ | |||
+ | curl_close($curl); | ||
+ | |||
+ | if ($err) | ||
+ | echo "cURL Error #:" . $err; | ||
+ | else | ||
+ | echo $response; | ||
+ | </sxh> | ||
+ | |||
+ | **Пример запросов на JavaScript:** | ||
+ | |||
+ | <sxh javascript> | ||
+ | const data = null; | ||
+ | |||
+ | const xhr = new XMLHttpRequest(); | ||
+ | xhr.withCredentials = true; | ||
+ | |||
+ | xhr.addEventListener("readystatechange", function () { | ||
+ | if (this.readyState === this.DONE) | ||
+ | console.log(this.responseText); | ||
+ | }); | ||
+ | |||
+ | xhr.open("GET", '//himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}'); | ||
+ | |||
+ | xhr.send(data); | ||
+ | </sxh> | ||
- | **Пример запросов jQuery.** | + | **Пример запросов на jQuery:** |
- | Функция encodeURIComponent выполняется для всех значений параметров команды: | + | Функция __encodeURIComponent__ выполняется для всех значений параметров команды: |
<sxh javascript> | <sxh javascript> | ||
- | '//www.himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}'), | + | '//himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}'), |
</sxh> | </sxh> | ||
Строка 119: | Строка 172: | ||
<sxh javascript> | <sxh javascript> | ||
$.ajax({ | $.ajax({ | ||
- | 'url': '//www.himinfo.ru/cl/{Path}/api/', | + | 'url': '//himinfo.ru/cl/{Path}/api/', |
'data': {'command': '{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val() + '"}'}, | 'data': {'command': '{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val() + '"}'}, | ||
'dataType': 'jsonp', | 'dataType': 'jsonp', | ||
Строка 132: | Строка 185: | ||
<sxh javascript> | <sxh javascript> | ||
$.ajax({ | $.ajax({ | ||
- | 'url': '//www.himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + email.val() + '", "param1": "' + name.val()+ '"}'), | + | 'url': '//himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + email.val() + '", "param1": "' + name.val()+ '"}'), |
'dataType': 'jsonp', | 'dataType': 'jsonp', | ||
'success': function(response, ioArgs){}, | 'success': function(response, ioArgs){}, | ||
Строка 1271: | Строка 1324: | ||
Ответ будет содержать документ с соответствующим **Content-Type**: //**image/svg+xml**// | Ответ будет содержать документ с соответствующим **Content-Type**: //**image/svg+xml**// | ||
---- | ---- | ||
- | ===== Фотографии заказа. OrderImages ===== | + | ===== Список фотографий по заказу. OrderImagesModern ===== |
- | **Команда:** %%OrderImages%% | + | **Команда:** %%OrderImagesModern%% |
- | Фотографии заказа. | + | Команда получения списка всех картинок по заказу, **использовать с параметром only_photo_id=1**. |
+ | |||
+ | Для получения самой фотографии, используется команда [[api#фотографии_по_заказу_photoonline|PhotoOnline]]. | ||
Метод отправки: **GET** | Метод отправки: **GET** | ||
- | Формат запроса: %%OrderImages={"dor_id":"12345"}&SessionID=%% | + | Формат запроса: %%OrderImagesModern={"dor_id":"12345"}&SessionID=%% |
- | Строка запроса: <code>.../api/?OrderImages=%7B%22dor_id%22:%2212345%22%7D&SessionID=...</code> | + | Строка запроса: <code>.../api/?OrderImagesModern=%7B%22dor_id%22:%2212345%22%7D&SessionID=...</code> |
где\\ | где\\ | ||
- | //dor_id// – ID заказа;\\ | + | //dor_id// – ID заказа, **обязательный параметр**;\\ |
- | //SessionID// - ID сессии, **обязательный параметр**. | + | //only_photo_id// - в ответе будет список без картинок (0 - с фотографиями, 1 - без фотографий, **обязательный параметр**;\\ |
+ | //SessionID// - ID клиентской или пользовательской сессии, **обязательный параметр**. | ||
Ответ **json**: | Ответ **json**: | ||
Строка 1291: | Строка 1347: | ||
<sxh json> | <sxh json> | ||
{ | { | ||
- | "error": 0, | + | "error":0, |
- | "img": [ | + | "photos":[ |
+ | { | ||
+ | "dos_id": "100229859", | ||
+ | "photo_id": "1004", | ||
+ | "img": "R0lGODlhEgAMAOZaACtTezxtnyBEaI2t0lNzlVZ1lzZbgpSz1zJYgJOx1lJ+rS1VfT5ih0p4qIipz1Bwk1Fxkz9voYanzoKkyyxUfFRzlWOLt0BxokdpjTFYfy9WfpCv1GuSvXSZw0Jlik5ukUVojFV0lkRzpEFxonGXwUx6qVZ1lkNzo0l3p46t01qFsn6hyFmEsjhdhDZcgj9jiFSAro+u0zhqnSpSeoeozmKLtzNZgExtkD1unzhdg3GXwFN/rVZ0llN/rl+JtWSNuUlrjn+iykxtkS5WfZKx1jZcg5Kx1Xufx5Kw1TprnVaBr3mdxUh3pzxhhjlehUpsj2OMuFeCsD5iiDdcgylRejpfhSZPeDNmmZWz11d2l////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjQyQjc1OThCRUJEMTFFNUFDRkVGNDdBMzUyNUUwMjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjQyQjc1OTlCRUJEMTFFNUFDRkVGNDdBMzUyNUUwMjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NDJCNzU5NkJFQkQxMUU1QUNGRUY0N0EzNTI1RTAyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NDJCNzU5N0JFQkQxMUU1QUNGRUY0N0EzNTI1RTAyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAXSAFoALAAAAAASAAwAAAd6gFZXg4SFhleCATpYjI2OjCQBgxIXUI+PPxcSg1gDKEpElwlRTANYnFhGMA0pjjElO0iMqIw1IzSMDic+B420WB09AStBOAodjqgHFhETR0kySxMRFr2nV1gbCg2mjwMNChvXDiIqCZeMCSwiDoMBHOiPHJKCh/aDVoEAIfkEBTwAWgAsAAAAABIADAAAB3eAAlaDhIWGVoIAIFmMjY6MIACDDwtSj48vCw+DWQQZOQWXBS0ZBFmcWSZTCBWOFTYuPIyojAyajBBDTY60WRhFADdCAAYYvFaNDBQfTzNUQB8UDI2cIQYIpo8ECAYhp1YQGlWhl1kFThoQgwAe5Y8ekoKH84MCgQA7" | ||
+ | } | ||
] | ] | ||
} | } | ||
Строка 1298: | Строка 1359: | ||
где\\ | где\\ | ||
- | //img// – массив строк картинок в Base64. | + | **photos** – массив объектов картинок:\\ |
+ | //dos_id// - ID услуги;\\ | ||
+ | //photo_id// - ID фотографии;\\ | ||
+ | //img// – фотография услуги в строке Base64, **устаревший параметр**. | ||
---- | ---- | ||
- | ===== Фотографии по заказу. OrderImagesModern ===== | + | ===== Фотографии по заказу. PhotoOnline ===== |
- | **Команда:** %%OrderImagesModern%% | + | **Команда:** %%PhotoOnline%% |
- | Обновленная команда получения всех картинок по заказу. | + | Команда получения фотографии по заказу |
Метод отправки: **GET** | Метод отправки: **GET** | ||
- | Формат запроса: %%OrderImagesModern={"dor_id":"12345"}&SessionID=%% | + | Формат запроса: %%PhotoOnline={"photo_id":"12345","dos_id":"1234567"}&SessionID=%% |
- | Строка запроса: <code>.../api/?OrderImagesModern=%7B%22dor_id%22:%2212345%22%7D&SessionID=...</code> | + | Строка запроса: <code>.../api/?PhotoOnline=%7B%22photo_id%22:%2212345%22,%22dos_id%22:%221234567%22%7D&SessionID=...</code> |
где\\ | где\\ | ||
- | //dor_id// – ID заказа, **обязательный параметр**;\\ | + | //photo_id// - ID фото из услуги, **обязательный параметр**;\\ |
- | //SessionID// - ID сессии, **обязательный параметр**. | + | //dos_id// - ID услуги из заказа, **обязательный параметр**;\\ |
+ | //SessionID// - сессия, **обязательный параметр**. | ||
- | Ответ **json**: | + | В ответ вернется картинка с типом заголовка: |
- | + | //Content-Type: image/png// | |
- | <sxh json> | + | |
- | { | + | |
- | "error": 0, | + | |
- | "photos": [ | + | |
- | { | + | |
- | "dos_id": "100229859", | + | |
- | "photo_id": "1004", | + | |
- | "img": "" | + | |
- | } | + | |
- | ] | + | |
- | } | + | |
- | </sxh> | + | |
- | + | ||
- | где\\ | + | |
- | **photos** – массив картинок:\\ | + | |
- | //dos_id// - ID услуги;\\ | + | |
- | //photo_id// - ID картинки;\\ | + | |
- | //img// – фото услуги закодированная в Base64. | + | |
---- | ---- | ||
===== Оплата депозитом. DepositPay ===== | ===== Оплата депозитом. DepositPay ===== | ||
Строка 1737: | Строка 1784: | ||
"comment": "", | "comment": "", | ||
"metro": "", | "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-", | "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", | "is_work_shop": "0", | ||
Строка 2350: | Строка 2398: | ||
Заголовок запроса (Header): не требуется. | Заголовок запроса (Header): не требуется. | ||
- | Формат запроса: %%PromoCodeActivate={"PromoCode":"123"}&SessionID=...%% | + | Формат запроса: %%PromoCodeActivate={"PromoCode":"123", "dor_id":"12345"}&SessionID=...%% |
где\\ | где\\ | ||
- | //PromoCode// - активируемый промо-код. | + | //PromoCode// - активируемый промо-код, **обязательный параметр**;\\ |
+ | //dor_id// – ID заказа (для проверки кол-ва заказов клиента), **необязательный параметр**.\\ | ||
- | Строка запроса: <code>.../api/?PromoCodeActivate=%7B%22PromoCode%22%3A%22123%22%7D&SessionID=...</code> | + | Строка запроса: <code>.../api/?PromoCodeActivate=%7B%22PromoCode%22%3A%22123%22%7D&%7B%22dor_id%22%3A%2212345%22%7D&SessionID=...</code> |
Ответ **json**: | Ответ **json**: | ||
Строка 3089: | Строка 3138: | ||
//img64// – картинка (картинка кодирована в строку Base64). | //img64// – картинка (картинка кодирована в строку Base64). | ||
---- | ---- | ||
+ | ====== Устаревшие команды ====== | ||
+ | В данном разделе находятся уже устаревшие команды, но еще работающие. | ||
+ | |||
+ | Через несколько лет они будут удалены. | ||
+ | |||
+ | Для избежания поломки уже интегрированных устаревших команд, рекомендуется сделать переход на соответствующую актуальную команду. | ||
+ | ---- | ||
+ | ===== Фотографии заказа. OrderImages ===== | ||
+ | |||
+ | **Команда:** %%OrderImages%% | ||
+ | |||
+ | Фотографии заказа. | ||
+ | |||
+ | Метод отправки: **GET** | ||
+ | |||
+ | Формат запроса: %%OrderImages={"dor_id":"12345"}&SessionID=%% | ||
+ | |||
+ | Строка запроса: <code>.../api/?OrderImages=%7B%22dor_id%22:%2212345%22%7D&SessionID=...</code> | ||
+ | |||
+ | где\\ | ||
+ | //dor_id// – ID заказа;\\ | ||
+ | //SessionID// - ID сессии, **обязательный параметр**. | ||
+ | |||
+ | Ответ **json**: | ||
+ | |||
+ | <sxh json> | ||
+ | { | ||
+ | "error": 0, | ||
+ | "img": [ | ||
+ | ] | ||
+ | } | ||
+ | </sxh> | ||
+ | |||
+ | где\\ | ||
+ | //img// – массив строк картинок в Base64. | ||
+ | ---- | ||
====== Список команд ====== | ====== Список команд ====== | ||