Универсальное API: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Admin (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
3. Формат данных с ответами – JSON | 3. Формат данных с ответами – JSON | ||
4. | 4. В качестве идентификации используется API-ключ | ||
5. | 5. Дополнительно рекомендуется на уровне API биллинга настраивать и проверять IP-адрес хоста, откуда поступают запросы либо ограничивать доступ vlan`ами | ||
6. | 6. На не поддерживаемые методы (или методы без необходимых параметров) необходимо отвечать HTTP-400 статусом через header. В тексте 400-ответа можно расширенно отвечать о характере ошибки. | ||
7. | 7. Текстовые поля, которые имеют пустое значение – рекомендуется не возвращать вовсе (для экономии трафика) | ||
Данные выводятся в формате: | |||
Дата - «ГГГГ-ММ-ДД чч:мм:сс» - например "2012-12-28 13:59:59" | |||
IP-адрес - long-формат inet_aton() - например "3232235521" для "192.168.0.1" | |||
MAC-адреса - без разделителей | |||
== Поддерживаемые методы == | == Поддерживаемые методы == |
Версия от 09:57, 6 октября 2017
Совместно с разработчиками ряда биллингов было создана структура универсального API, которое позволяет удобно и стандартизировано получать информацию из различных биллинговых систем.
Текущая версия: 1.4.1 от 14.01.2017
На данный момент работу по этому API поддерживают биллинги:
- uBilling v.0.7.2+ (версия API 1.2) v.0.8.0+ (версия API 1.4)
- MikBill v.2.8.16+ (версия API 1.2)
- Carbon Billing v.5.15.06+ (версия API 1.2)
- также в самой ERP "UserSide" поддерживается вывод информации по требованиям этого API
Для взаимодействия используется модуль usm_billing
ВАЖНО: "Универсальное API" - это очень удобный инструмент для работы с самописными биллингами или теми биллингами, которые мы не поддерживаем на данный момент. Администратору/программисту достаточно обеспечить вывод данных в требуемом формате из своего биллинга и это будет достаточно чтобы наш (бесплатный) модуль взаимодействия usm_billing их стандартно обработал.
Вводные
1. Всё взаимодействие построено на API запросах
2. Рабочая кодировка – UTF-8
3. Формат данных с ответами – JSON
4. В качестве идентификации используется API-ключ
5. Дополнительно рекомендуется на уровне API биллинга настраивать и проверять IP-адрес хоста, откуда поступают запросы либо ограничивать доступ vlan`ами
6. На не поддерживаемые методы (или методы без необходимых параметров) необходимо отвечать HTTP-400 статусом через header. В тексте 400-ответа можно расширенно отвечать о характере ошибки.
7. Текстовые поля, которые имеют пустое значение – рекомендуется не возвращать вовсе (для экономии трафика)
Данные выводятся в формате:
Дата - «ГГГГ-ММ-ДД чч:мм:сс» - например "2012-12-28 13:59:59" IP-адрес - long-формат inet_aton() - например "3232235521" для "192.168.0.1" MAC-адреса - без разделителей
Поддерживаемые методы
(с полным описанием можно ознакомиться в документе по ссылке выше. Здесь же представлены некоторые методы лишь для общего информирования и с примерами)
get_api_information - Используемая версия API
get_supported_method_list - Поддерживаемые методы API
get_system_information - Системная информация
get_tariff_list - Тарифные планы. Стандартные тарифы
get_city_list - Адреса. Населённые пункты
get_city_district_list - Адреса. Районы в населённых пунктах
get_street_list - Адреса. Улицы
get_house_list - Адреса. Дома
get_user_additional_data_type_list - Типы дополнительных полей по абонентам
get_user_state_list - Типы статусов абонентов (конфигуратор статусов)
get_user_group_list - Группы абонентов
get_user_list - Абоненты/клиенты
Возможные операции в биллинге (из-под UserSide)
Данный функционал поддерживается штатно в биллинге uBilling, начиная с версии v.0.8.0, либо может быть организован для своего самописного биллинга, согласно вышеуказанному универсальному API
Абоненты
- просмотр истории платежей по абоненту
- изменение ФИО/названия абонента
- изменение баланса абонента
Для работы с этим функционалом требуется выполнить следующие действия:
- в файле /main/config/config.php дописать блок
$billingSynergy[99] = array( 'url' => 'http://mydomain.com/ubilling/?module=remoteapi&key=my_key&action=userside', 'is_allow_change' => 1 ); Где: 99 - номер биллинга (Настройка - Биллинги) url - URL к биллингу my_key - api-ключ биллинга is_allow_change - флаг - разрешает изменение данных из-под UserSide в биллинге. Если не включен, то осуществляется лишь чтение данных
- при правильном заполнении, на странице "Настройка - Биллинги - нужный биллинг" будет видны результаты прямого опроса биллинга