Подключаетесь к БД (версия firebird 1.0, cp1251).
Используйте логин/пароль для личного кабинета, в целях безопасности. Реквизиты для доступа можете взять из файла /etc/ics/ics.conf:
WEB_DB_CHARSET=WIN1251 WEB_DB_PASS= WEB_DB_ROLE=WEB WEB_DB_USER=WEB_USER
Вам будут доступны процедуры БД с префиксом WEB_, посмотреть список можете командой:
sqlexec "show procedures"
ВНИМАНИЕ! Мы оставляем за собой право на изменение данного API в одностороннем порядке. Вам придется тестировать ваши скрипты, работающие с ним, на тестовом стенде с новой версией перед обновлением!
Первая процедура, которую должен выполнить абонент: WEB_USER_LOGIN2
WEB_USER_LOGIN2 ( WEB_LOGIN varchar(32), RANDOM_WORD varchar(8), WEB_HASH varchar(32), WEB_PASS varchar(16), WEB_IP varchar(15)) returns ( SESSION_ID numeric(18,0), USER_ID integer, ISADMIN integer, GROUP_ID integer, SHOW_CARD integer, IDENTIFY varchar(128), SHOW_OPER integer, RESULT integer, MSG varchar(1024), IP varchar(15))
Где:
- WEB_LOGIN - логин абонента
- RANDOM_WORD - соль
- WEB_HASH - md5 хеш от соли и пароля (md5(RANDOM_WORD | PASSWORD))
- WEB_PASS - пароль в открытом виде
- WEB_IP - ip адрес, откуда подключается абонент
Авторизоваться можно 2 способами:
- Безопасно: с помощью параметров RANDOM_WORD и WEB_HASH (оставив WEB_PASS пустым)
- Не безопасно: передав WEB_PASS (оставив RANDOM_WORD и WEB_HASH пустыми)
Возвращаемые значения:
- SESSION_ID - идентификатор сессии
- USER_ID - id абонента в БД
- ISADMIN - 1 если абонент является администраторомGROUP_ID - parid абонента (его группа)
- IDENTIFY - имя абонента
- RESULT - 1 если авторизация прошла успешно, 0 - если нет
- MSG - информация почему авторизация не прошла
- IP - ip адрес абонента
Получить информацию по абоненту можно процедурой WEB_USER_GET:
WEB_USER_GET ( SUID numeric(18,0), VIEW_ID integer, PARENT_ID integer)
Где:
- SUID - SESSION_ID, получанный при авторизации
- VIEW_ID - id абонента
- PARENT_ID - null
Получить задачи helpdesk:
SELECT * FROM HDSK_TASK_LIST(id, status)
Где
- id - id абонента
- status - фильтр по статусу (0 или 10)
Создание/изменение статуса/добавление комментария к заявке:
HDSK_TASK_EDIT ( UID integer, UK integer, PARENT_ID integer, SUBJ varchar(256), TEXT varchar(1024), STATUS integer, URL varchar(1024))
Где
- UID - id абонента
- UK - 10, если нужно сменить статус заявки (заявка берется по parent_id, статус из status). 0, для остальных действий
- PARENT_ID - id родительской задачи (для комментариев и смены статуса) либо 0 для создания новой задачи
- SUBJ - тема
- TEXT - сообщение
- STATUS - статус
- URL - url адрес, который приходит абоненту по смс/email
Подключение обещанного платежа:
create procedure WEB_USER_PROMISE_PAY (
SUID numeric(18,0),
USER_ID integer,
PROMISE_PAY double precision,
HOST varchar(15))
returns (
MSG varchar(1024))
Где
- SUID - session_id (можно залогиниться как под самим абонентом, так и под администратором)
- USER_ID - id абонента
- PROMISE_PAY - сумма
- HOST - необязательный параметр, ip откуда пришел запрос от абонента
Возвращает: - MSG - текстом, результат выполнения операции
Смена mac адреса (будет в будущих версиях):
Внимание! mac адрес должен быть в формате 00:00:00:00:00:00 (разделитель двоеточие). Также не следует вносить сюда пользовательский ввод бед превалидации!
create procedure WEB_USER_MAC_CHANGE ( SUID numeric(18,0), USER_ID integer, NEW_MAC varchar(17), HOST varchar(15))
Где
- SUID - session_id (можно залогиниться как под самим абонентом, так и под администратором)
- USER_ID - id абонента
- NEW_MAC - новый mac-адрес
- HOST - необязательный параметр, ip откуда пришел запрос от абонента