... Подключаетесь к БД (версия firebird 1.0, cp1251). Используйте логин/пароль для личного кабинета, в целях безопасности. Реквизиты для доступа можете взять из файла /etc/ics/ics.conf: {code} WEB_DB_CHARSET=WIN1251 WEB_DB_PASS= WEB_DB_ROLE=WEB WEB_DB_USER=WEB_USER {code} Вам будут доступны процедуры БД с префиксом WEB_, посмотреть список можете командой: {code} sqlexec "show procedures" {code} {color:#ff0000}{*}ВНИМАНИЕ\! Мы оставляем за собой право на изменение данного API в одностороннем порядке. Вам придется тестировать ваши скрипты, работающие с ним, на тестовом стенде с новой версией перед обновлением\!*{color} h3. Первая процедура, которую должен выполнить абонент: WEB_USER_LOGIN2 {code} 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)) {code} Где: * 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 адрес абонента h3. Получить информацию по абоненту можно процедурой WEB_USER_GET: {code} WEB_USER_GET ( SUID numeric(18,0), VIEW_ID integer, PARENT_ID integer) {code} Где: * SUID - SESSION_ID, получанный при авторизации * VIEW_ID - id абонента * PARENT_ID - null h3. Получить задачи helpdesk: {code} SELECT * FROM HDSK_TASK_LIST(id, status) {code} Где * id - id абонента * status - фильтр по статусу (0 или 10) h3. Создание/изменение статуса/добавление комментария к заявке: {code} HDSK_TASK_EDIT ( UID integer, UK integer, PARENT_ID integer, SUBJ varchar(256), TEXT varchar(1024), STATUS integer, URL varchar(1024)) {code} Где * UID - id абонента * UK - 10, если нужно сменить статус заявки (заявка берется по parent_id, статус из status). 0, для остальных действий * PARENT_ID - id родительской задачи (для комментариев и смены статуса) либо 0 для создания новой задачи * SUBJ - тема * TEXT - сообщение * STATUS - статус * URL - url адрес, который приходит абоненту по смс/email h3. Подключение обещанного платежа: {code} create procedure WEB_USER_PROMISE_PAY ( SUID numeric(18,0), USER_ID integer, PROMISE_PAY double precision, HOST varchar(15)) returns ( MSG varchar(1024)) {code} Где * SUID - session_id (можно залогиниться как под самим абонентом, так и под администратором) * USER_ID - id абонента * PROMISE_PAY - сумма * HOST - необязательный параметр, ip откуда пришел запрос от абонента Возвращает: * MSG - текстом, результат выполнения операции
|
... create procedure WEB_USER_MAC_CHANGE ( SUID numeric(18,0), USER_ID integer, NEW_MAC varchar(17), HOST varchar(15)) {code} Где * SUID - session_id (можно залогиниться как под самим абонентом, так и под администратором) * USER_ID - id абонента * NEW_MAC - новый mac-адрес * HOST - необязательный параметр, ip откуда пришел запрос от абонента
|