Просмотр Исходного

Для работы с 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.




h4. {color:#ff0000}Важно:{color}

{color:#000000}В api.php используется значение текущей версии базы. Если при выполнении команды в браузере вы увидели следующее:{color}

!1.png|border=1!

это значит, что изменение прошло успешно.

h4. {color:#000000}Примеры:{color}

{color:#000000}Для внесения изменений в GET-запросе необходимо указать название процедуры и задать необходимые значения полям.{color}

{color:#000000}Пример использования (удаление дома из справочника) выполняется в 2 шага:{color}

{color:#000000}https://<billing\_{color}{color:#000000}address{color}{color:#000000}>:1443/api.php?{color}cmd=execute&proc=CLN_AUTH_LOGIN&arg1=Administrator&arg2=servicemode&arg3=0 - логин администратора с получением SUID.

{color:#000000}https://<billing\_{color}{color:#000000}address{color}{color:#000000}>:1443/api.php?{color}cmd=execute&proc=CLN_HOME_EDIT&arg1=<SUID>&arg2=2&arg3=10 - удаление из справочника адреса с использованием ранее полученного&nbsp; SUID.

Описание процедур:


h3. Адреса абонентов

Процедура CLN_HOME_EDIT&nbsp; - изменяет адрес дома подключения абонентов
&nbsp;&nbsp;&nbsp; SUID INTEGER - SUID из CLN_LOGIN
&nbsp;&nbsp;&nbsp; P_OP INTEGER - операция : 2 удаление 1 - Добавление 0 изменение
&nbsp;&nbsp;&nbsp; ID INTEGER - ID дома
&nbsp;&nbsp;&nbsp; PULL_ID \-&nbsp; ID IP-пула
&nbsp;&nbsp;&nbsp; CONNECT_DATE TIMESTAMP - дата подключения
&nbsp;&nbsp;&nbsp; ZIP_CODE VARCHAR(10) - индекс
&nbsp;&nbsp;&nbsp; COUNTRY VARCHAR(256) - страна
&nbsp;&nbsp;&nbsp; CITY VARCHAR(256) - город
&nbsp;&nbsp;&nbsp; REGION VARCHAR(256) - область
&nbsp;&nbsp;&nbsp; STREET VARCHAR(256) - улица
&nbsp;&nbsp;&nbsp; S_NUMBER INTEGER - номер дома
&nbsp;&nbsp;&nbsp; S_LITER VARCHAR(32) - литера дома


PROCEDURE CLN_HOME_LIST
&nbsp;&nbsp;&nbsp; SUID INTEGER - SUID из CLN_LOGIN
&nbsp;&nbsp;&nbsp; P_ID INTEGER&nbsp; - ID дома

Список домов , ид если надо конкретный

h3. {color:#000000}Коммутаторы{color}

Редактирование свича
Процедура CLN_SWITCH_EDIT&nbsp; - редактирование коммутаторов
&nbsp;&nbsp;&nbsp; P_SUID INTEGER - SUID полученый CLN_USR_LOGIN
&nbsp;&nbsp;&nbsp; P_OP INTEGER - код операции 2 - удаление ,1 добавление 0 - обновление существующего
&nbsp;&nbsp;&nbsp; ID INTEGER - ID в базе , null если удаление
&nbsp;&nbsp;&nbsp; NAME VARCHAR(1024) - Название
&nbsp;&nbsp;&nbsp; IP INTEGER - IP адрес
&nbsp;&nbsp;&nbsp; SWITCH_TYPE VARCHAR(256) - строка содержащие название типа свича
&nbsp;&nbsp;&nbsp; PSW_SNMP VARCHAR(40)&nbsp; - SNMP пароль
&nbsp;&nbsp;&nbsp; PSW_SSH VARCHAR(40) - SSH пароль
&nbsp;&nbsp;&nbsp; PSW_TELNET VARCHAR(40)&nbsp; - TELNET пароль&nbsp;
&nbsp;&nbsp;&nbsp; HOME_ID INTEGER - ID дома
&nbsp;&nbsp;&nbsp; PORTS_CNT INTEGER - количество портов
&nbsp;&nbsp;&nbsp; UPDATE_HOME_FLAG INTEGER - Если "1" Ставим всем пользователям дома этого дома.

После выполнения процедуры происходит перезапуск dhcpd

&nbsp; Процедура CLN_SWITCH_LIST - вывод списка коммутаторов
&nbsp;&nbsp;&nbsp; P_SUID INTEGER - SUID полученый CLN_USR_LOGIN
&nbsp;&nbsp;&nbsp; P_ID INTEGER - ID Свича (не обязательно )
&nbsp;&nbsp;&nbsp; P_HOME_ID INTEGER - ID дома (не обязательно )

Начиная с версии 3.9.7 (236) существует возможность использования нового обработчика с прямым указанием логина и пароля, позволяющего сделать запрос с изменением данных за один шаг.

Пример : {color:#000000}https://<billing_address>:1443/api.php?login=Administrator&password=servicemode&{color}cmd=execute&proc=CLN_HOME_EDIT&arg1=_2_&arg2=10 - удаление из справочника адреса.

h3. {color:#000000}Услуги абонента{color}

Процедура CLN_USR_USLUGA_EDIT - редактирование услуг абонента
&nbsp;&nbsp;&nbsp; SUID integer - SUID полученый CLN_USR_LOGIN
&nbsp;&nbsp;&nbsp; ID integer - ID в базе , null если удаление
&nbsp;&nbsp;&nbsp; USER_ID integer - id абонента
&nbsp;&nbsp;&nbsp; USLUGA_ID integer - id услуги
&nbsp;&nbsp;&nbsp; ENABLED integer - флаг ENABLED
&nbsp;&nbsp;&nbsp; CREATE_DATE timestamp - дата создания (берется текущая по умолчанию)
&nbsp;&nbsp;&nbsp; NEXT_DATE timestamp - дата следующего списания
&nbsp;&nbsp;&nbsp; COUNTT integer - количество
&nbsp;&nbsp;&nbsp; UK integer - код операции 2 - удаление ,1 добавление 0 - обновление существующего
&nbsp;&nbsp;&nbsp; COMMENT varchar(64) - комментарий
&nbsp;&nbsp;&nbsp; EQUIPMENT_ID integer,
&nbsp;&nbsp;&nbsp; SIP_ID varchar(32) - id на оборудовании (номер VoIP телефона, номер IPtv)

h3. {color:#000000}Состояние абонента{color}

Процедура CLN_USR_GET - получение информации по пользователю

*Входные параметры:*
SUID numeric(18,0),
SELECT_ID integer)

*Возвращаемые значения:*
USER_ID integer -
PARENT_ID integer -
TARIF_ID integer -
USE_PARENT_TARIF integer -
LOGIN varchar(32) -
NAME varchar(128) -
EMAIL varchar(128) -
PULL_ID integer -
USE_PARENT_PULL integer -
IP integer -
SNATIP integer -
USE_PARENT_SNATIP integer -
NET_SIZE integer -
OSTATOK numeric(15,2) -
CREDIT numeric(15,2) -
DEBIT numeric(15,2) - Баланс пользователя;
BALANCE numeric(15,2) -
LIMIT numeric(15,2) -
UNLIMITED smallint -
FINANCE_USER smallint -
ENABLED smallint -
DELETED smallint -
END_USER smallint -
ROOT_ADMIN smallint -
TECH_ADMIN smallint -
FIN_ADMIN smallint -
CARD_ADMIN smallint -
AUTO_ACCOUNT integer -
AUTO_INTERVAL integer -
SERVER smallint -
PSW varchar(16) -
BALANCE_BUH numeric(15,2) -
NEXT_AUTO_ACOUNT timestamp -
AUTO_ACCOUNT_LOCK integer -
LIMIT_LOCK integer -
ALLOW_RECONNECT integer -
ALLOW_MAIL integer -
ALLOW_INTERNET_CONNECT integer -
LIMIT_WARNING numeric(15,2) -
USE_LIMIT_WARNING integer -
LOGGED integer -
USERS_COUNT integer -
DEL_COUNT integer -
ALLOW_VIEW_PARENT_LIMIT integer -
DISABLED_DATE timestamp -
ABONENT_PAY numeric(15,2) -
REDIRECT_MAIL integer -
AUTH_TYPE integer -
USE_PARENT_AUTH_TYPE integer -
AD_IS integer -
AD_BASEDN varchar(256) -
AD_BINDDN varchar(256) -
AD_PASS varchar(64) -
AD_HOST integer -
AD_UPDATE timestamp -
AD_FILTER varchar(256) -
DEF_ALLOW_MAIL integer -
DEF_AUTO_ACCOUNT_INTERVAL integer -
DEF_ALLOW_RECONNECT integer -
DEF_ALLOW_INTERNET_CONNECT integer -
DEF_ALLOW_VIEW_PARENT_LIMIT integer -
DEF_OSTATOK numeric(15,2) -
DEF_LIMIT numeric(15,2) -
DEF_WARNING numeric(15,2) -
AD_DOMAIN varchar(256) -
AD_LDAP_GROUP varchar(128) -
AD_WINDOWS_GROUP varchar(128) -
MAC varchar(17) -
ALLOW_MAIL_INTERNET integer -
DEF_ALLOW_MAIL_INTERNET integer -
AD_DOMAIN_ISJOIN integer -
CONTRACT_NUMBER varchar(32) -
USE_PARENT_ABONENT_PAY integer -
FORCE_MAILDIR integer -
ALWAYS_LOGGED integer -
PLAN_NEXT_ID integer -
READ_ADMIN smallint -
ROUTER_IP integer -
ROUTER_VLAN integer -
ROUTER_PORT integer -
NAS_IP integer -
OPT82 integer -
OWN_DISABLED_END timestamp -
PROMISE_PAY numeric(15,2) -
PROMISE_DATE_END timestamp -
HOST_IP integer -
FULL_ADMIN integer -
NAS_IP_LOCK integer -
CODE1C varchar(32) -
SYNC1C integer -
HOST_PULL_ID integer -
KILL_TIME timestamp -
SMS varchar(32) -
GEN_PWD varchar(32) -
COMPANY integer -
SEND_ACT integer -
HOME_ID integer -
SWITCH_ID integer -
SWITCH_NAME varchar(1024) -
A_HOME_NUMBER integer -
ACL integer -
TARIF_TXT varchar(32) -
IP_RANGE varchar(32) -
SNATIP_CACHE integer -
CREATE_DATE date -
STB_IP integer -
STB_IP_PULL_ID integer -
STB_USE_PARENT_PULL integer -
STB_MAC varchar(17) -
VOIP_IP integer -
VOIP_IP_PULL_ID integer -
VOIP_USE_PARENT_PULL integer -
VOIP_MAC varchar(17) -
SORM_ADMIN smallint -

h3. Обещаный платеж

Процедура&nbsp;WEB_USER_PROMISE_PAY дает возможность взять обещанный платеж через web.

*Входные параметры:*

SUID numeric(18,0) -
USER_ID integer - номер абонента
PROMISE_PAY double precision - сумма платежа
HOST varchar(15) - Данные для записи в аудит, текст.

h3. Поиск абонента

Процедура CLN_USR_FIND_2 дает возможность получить информацию об абоненте по одному из полей.

*Входные параметры:*

SUID numeric(18,0)
NAME_IN varchar(128)\- Имя пользователя
LOGIN_IN varchar(32) - Логин пользователя
ID_IN integer - ID пользователя
EMAIL_IN varchar(128) - e-mail пользователя
IP_IN integer - IP пользователя
FINANCE_IN integer - Признак финансовый
SERVER_IN integer - Использование NAT(есть/нет)
ADMIN_IN integer - Права администратора(есть/нет)
BALANCEL_IN double precision - нижняя граница баланса
BALANCEH_IN double precision - верхняя граница баланса
PARENT_ID_IN integer - не используется
END_USER_IN integer - является ли пользователь группой(1 \-не является)
COUNT_USER_IN integer -
ALL_IN integer -
DELETED_IN integer -
ATTRIBUTE varchar(128) -
CONTRACT_NUMBER_IN varchar(32) - Номер договора пользователя
TARIFF_ID integer - Номер тарифа пользователя
ROUTER_IP integer - ip абонетского коммутатора
ROUTER_VLAN integer - абонентский vlan на коммутаторе
ROUTER_PORT integer - абонентский порт на коммутаторе
SIP_ID varchar(32) -
SMS_IN VARCHAR(32) - номер телефона
NAS_IP INTEGER - ip адрес nas-сервера

*Возвращаемые значения*

ID integer - ID пользователя
PARENT_IDENTIFY varchar(1024) - Имя группы пользователя
IDENTIFY varchar(150) - ФИО пользователя
IP varchar(16) - IP
BALANCE numeric(15,2) - Баланс пользователя
DELETED smallint - Флаг удален
END_USER smallin - является ли пользователь группой(1 \-не является)
SERVER integer - Использование NAT
PARID integer - ID группы пользователя
COMMENT varchar(512) -
PARID1 integer -
ID1 integer -
COUNT_USER integer
LOGIN varchar(32) - Логин пользователя
COLOR varchar(32) -

h3. Внесение средств

Процедура CLN_FIN_OPER_ADD используется для внесения средств на баланс

*Входные параметры:*
SUID numeric(18,0) - id сессии администратора
USER_ID integer - id абонента
OP_DATE timestamp - Дата операции
SUMMA double precision - Сумма операции
DESCR varchar(255) - текстовое описание
NUMBER varchar(10) - номер операции (можно любой)
2 - тип операции(приход)
null - пустой, обязательный параметр.

h3. Просмотр финансовых операций абонента

Процедура CLN_FIN_OPER
Все параметры, кроме suid и USER_ID не обязательны.
USER_ID (вместо него можно использовать PARENT_ID_IN) может принимать как id конкретного абонента, так и id группы (тогда процедура вернет данные по всем подгруппам и абонентам в них)

*Входные параметры:*
SUID numeric(18,0) - id сессии администратора
USER_ID integer - id абонента
DATEL timestamp - фильтр по дате. "Начиная с этой даты"
DATEH timestamp - фильтр по дате. "Не позже этой даты"
FINANCE_IN integer - флаг (1 - Означает, что это реальный финансовый документ, используется при нумерации)
OP_TYPE_IN integer - тип операции
ID integer - id конкретно операции
END_USER integer - флаг (1 - показать операции только абонентов, 0 - только групп)
FIN_USER integer - флаг (1 - показывать операции только финансово-ответственных)
PARENT_ID_IN integer - id группы