API личного кабинета

Skip to end of metadata
Go to start of metadata

Подключаетесь к БД (версия 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 способами:

  1. Безопасно: с помощью параметров RANDOM_WORD и WEB_HASH (оставив WEB_PASS пустым)
  2. Не безопасно: передав 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 откуда пришел запрос от абонента
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.