API

Материал из WiKi - UserSide

Этот раздел описывает возможности использования встроенного API в САП "UserSide", что позволяет использовать встроенный функционал в собственных проектах.

API охватывает на данный момент не весь функционал и постепенно дорабатывается, так что данная страница будет иметь частые изменения и дополнения.

Принцип работы

За взаимодействие отвечает файл /api.php

Входящие параметры:
Обязательные:
 api - ключ API
 kat - категория запроса
Возможные:
 cp - кодировка (возможное значение: cp1251). По-умолчанию данные возвращаются в кодировке utf8.
 gz - возврат данных в сжатом формате (возможное значение: disable). По-умолчанию данные возвращаются в сжатом формате.
 subkat - подкатегория запроса
 sort_desc - обратная сортировка результата запроса (Возможное значение: 1)
 Прочие дополнительные параметры, в зависимости от категории (см. ниже в соответствующих категориях). Например:
  usercode - код абонента (tbl_base.CODE)

Пример запроса:
api.php?api=key&kat=abon&subkat=msg&usercode=1
Возвращаемые данные:
 Если запрос предполагает какое-то действие или возврат информации, то в формате JSON будет возвращена информация:
  array(
   [Result] => OK / ERROR
   [ErrorText] => В случае ошибки - текст ошибки
  )

Основная настройка

В основном файле конфигурации main/config/config.php добавьте (или настройте) переменную $zapikey, где укажите свой произвольный API-ключ.

Категории

redirect

Переадресация на карточку объекта по какому-то признаку

Дополнительные параметры:
subkat - тип объекта (возможное значение: abon)
typer - тип анализируемых данных (возможное значение: tel)
value - данные (текстовое значение)

Пример запроса:
api.php?api=key&kat=redirect&subkat=abon&typer=tel&value=380971234567

newin

Форма заявки на подключение

Пример реализации: http://userside.ua/userside/script/newin/sample.php

Дополнительные параметры:
subkat - подкатегория запроса (возможное значение: new (пустое значение этого параметра равняется new))
citycode - ID населенного пункта (tbl_adr_city.CODE), по которому подаётся заявка. Будет открыт выбор улиц. Если пусто - будет открыт выбор населенного пункта.
map - флаг (1/0) - открывать ли окно выбора карты. Населенный пункт должен быть указан на карте - тогда будет понятно какую карту открывать и где её центровать.

Пример запроса:
api.php?api=key&kat=newin&map=1

abon

Действия с абонентами. Большинство действий актуально для ручных биллингов.

Дополнительные параметры:
subkat - подкатегория запроса (возможное значение: см.ниже)
typer - тип анализируемых данных (возможное значение: tel)
value - данные (текстовое значение)

Пример запроса:
api.php?api=key&kat=redirect&subkat=abon&typer=tel&value=380971234567

input_msg

Подкатегория: input_msg
Описание: Запись сообщения от абонента
Обязательные параметры:
 usercode - ID абонента (tbl_base.CODE)
 msgtext - текст сообщения
Дополнительно возвращаемые данные:
 array(
  [MsgId] => В случае успеха - ID сообщения (tbl_trouble.CODE)
 )
Подкатегория: list_tarif_available
Описание: Список тарифов, доступных абоненту для смены
Обязательные параметры:
 usercode - ID абонента (tbl_base.CODE)
Дополнительно возвращаемые данные:
 перечень тарифов
 array(
  [TarifList] => array(
   [Id] - ID тарифа (tbl_group.CODE)
   [Name] - Название тарифа
   [Price] - Стоимость тарифа
   [IsDayPrice] - Флаг - ежедневная ли стоимость
  )
 )
Подкатегория: pass_change
Описание: Смена пароля на вход в ЛК
Обязательные параметры:
 usercode - ID абонента (tbl_base.CODE)
 pass_old - текущий пароль
 pass_new - новый пароль
Подкатегория: tarif_change
Описание: Смена тарифа абоненту
Обязательные параметры:
 usercode - ID абонента (tbl_base.CODE)
 tarif - ID нового тарифа (tbl_group.CODE)