Для работы с API используется web-интерфейс кассира
Для его включения необходимо:
1. Зайти в Меню -> Конфигурирование сервера -> Платежные системы и доп услуги...
- Поставить галочку "Включить SSL WEB-сервер для платежей" (после этого появятся дополнительные пункты меню).
- Указать адрес на котором будет находится веб-интерфейс кассира, можно указать либо локальный либо внешний IP-адрес
- Порт на котором будет находится веб-интерфейс, по-умолчанию порт 1443
- Указать разрешенные IP-адреса клиентов, если не указаны, то можно всем
- Указать домен - можно вымышленный, можно локальный, можно реальный, если он есть. нужен для создания сертификата, строгой роли не играет
- Поставить галочку "Требовать и проверять клиентский сертификат" - при включении веб-интерфейса кассира эту галочку надо обязательно поставить
2. Далее необходимо создать клиентский сертификат:
- В том же пункте меню где включается веб-интерфейс кассира необходимо выбрать пункт "Создать клиентский сертификат"
- Для задания имени клиентского сертификата CN можно использовать латинские буквы и цифры
- Пароль для клиентского сертификата можно оставить пустым, либо задать его используя только латинские буквы и цифры
- Созданный сертификат будет сохранен в директорию /var/lib/usrcert, откуда его можно скачать используя, например, программу WinSCP
- Для каждого кассира нужно создать отдельный клиентский сертификат
3. Установить клиентский сертификат на компьютер с которого будет осуществляться доступ к веб-интерфейсу кассира:
- Скачать сертификат *.pfx (имя файла совпадает с именем клиентского сертификата CN) из папки /var/lib/usrcert на компьютер
- Для IE при импорте сертификата выбрать тип хранилища - Автоматический
- Для Firefox можно импортировать сертификат следующим образом:
Настройки > Дополнительные > Шифрование > Просмотр сертификатов > Ваши сертификаты > Импортировать, далее выбираем *.pfx файл
4. Настоятельно рекомендуется завести специального администратора для работы через API. Это также позволит легко отделить административные, выполненные через API.
Важно:
В api.php используется значение текущей версии базы. Если при выполнении команды в браузере вы увидели следующее:
это значит, что изменение прошло успешно.
Примеры:
Для внесения изменений необходимо в GET-запросе необходимо указать название процедуры и задать необходимые значения полям.
Пример использования (удаление дома из справочника) выполняется в 2 шага:
https://<billing_address>:1443/api.php?cmd=execute&proc=CLN_AUTH_LOGIN&arg1=Administrator&arg2=servicemode&arg3=0 - логин администратора с получением SUID.
https://<billing_address>:1443/api.php?cmd=execute&proc=CLN_HOME_EDIT&arg1=<SUID>&arg2=2&arg3=10 - удаление из справочника адреса с использованием ранее полученного SUID.
Описание процедур:
Адреса абонентов
Процедура CLN_HOME_EDIT - изменяет адрес дома подключения абонентов
SUID INTEGER - SUID из CLN_LOGIN
P_OP INTEGER - операция : 2 удаление 1 - Добавление 0 изменение
ID INTEGER - ID дома
PULL_ID - ID IP-пула
CONNECT_DATE TIMESTAMP - дата подключения
ZIP_CODE VARCHAR(10) - индекс
COUNTRY VARCHAR(256) - страна
CITY VARCHAR(256) - город
REGION VARCHAR(256) - область
STREET VARCHAR(256) - улица
S_NUMBER INTEGER - номер дома
S_LITER VARCHAR(32) - литера дома
PROCEDURE CLN_HOME_LIST
SUID INTEGER - SUID из CLN_LOGIN
P_ID INTEGER - ID дома
Список домов , ид если надо конкретный
Коммутаторы
Редактирование свича
Процедура CLN_SWITCH_EDIT - редактирование коммутаторов
P_SUID INTEGER - SUID полученый CLN_USR_LOGIN
P_OP INTEGER - код операции 2 - удаление ,1 добавление 0 - обновление существующего
ID INTEGER - ID в базе , null если удаление
NAME VARCHAR(1024) - Название
IP INTEGER - IP адрес
SWITCH_TYPE VARCHAR(256) - строка содержащие название типа свича
PSW_SNMP VARCHAR(40) - SNMP пароль
PSW_SSH VARCHAR(40) - SSH пароль
PSW_TELNET VARCHAR(40) - TELNET пароль
HOME_ID INTEGER - ID дома
PORTS_CNT INTEGER - количество портов
UPDATE_HOME_FLAG INTEGER - Если "1" Ставим всем пользователям дома этого дома.
После выполнения процедуры происходит перезапуск dhcpd
Процедура CLN_SWITCH_LIST - вывод списка коммутаторов
P_SUID INTEGER - SUID полученый CLN_USR_LOGIN
P_ID INTEGER - ID Свича (не обязательно )
P_HOME_ID INTEGER - ID дома (не обязательно )
Начиная с версии 3.9.7 (236) существует возможность использования нового обработчика с прямым указанием логина и пароля, позволяющего сделать запрос с изменением данных за один шаг.
Пример : https://<billing_address>:1443/api.php?login=Administrator&password=servicemode&cmd=execute&proc=CLN_HOME_EDIT&arg1=2&arg2=10 - удаление из справочника адреса.
Услуги абонента
Процедура CLN_USR_USLUGA_EDIT - редактирование услуг абонента
SUID integer - SUID полученый CLN_USR_LOGIN
ID integer - ID в базе , null если удаление
USER_ID integer - id абонента
USLUGA_ID integer - id услуги
ENABLED integer - флаг ENABLED
CREATE_DATE timestamp - дата создания (берется текущая по умолчанию)
NEXT_DATE timestamp - дата следующего списания
COUNTT integer - количество
UK integer - код операции 2 - удаление ,1 добавление 0 - обновление существующего
COMMENT varchar(64) - комментарий
EQUIPMENT_ID integer,
SIP_ID varchar(32) - id на оборудовании (номер VoIP телефона, номер IPtv)
Состояние абонента
CLN_USR_GET