Основное API: відмінності між версіями
Sv (обговорення | внесок) |
Sv (обговорення | внесок) |
||
(Не показано 68 проміжних версій цього користувача) | |||
Рядок 1: | Рядок 1: | ||
==Общая информация== | ==Общая информация== | ||
API запросы выполняются по http(s)-протоколу, в ответ приходит json. | API запросы выполняются по http(s)-протоколу, в ответ приходит json. Тестировать API можно с консоли, например: | ||
Тестировать API можно с консоли, например: | |||
<source lang="bash"> | <source lang="bash"> | ||
Рядок 9: | Рядок 7: | ||
</source> | </source> | ||
В ответ приходит сообщение об ошибке | В ответ приходит сообщение об ошибке «запрос не авторизован»: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
{ | { | ||
Рядок 27: | Рядок 25: | ||
В cookie в параметре nolang можно указать язык, например, nolang=UA | В cookie в параметре nolang можно указать язык, например, nolang=UA | ||
== Авторизация== | ==Авторизация== | ||
Логин: test | Логин: test | ||
Пароль: 123 | Пароль: 123 | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?_uu=test | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?_uu=test&_pp=123' | ||
</source> | </source> | ||
Рядок 40: | Рядок 38: | ||
<source lang="javascript"> | <source lang="javascript"> | ||
{ | { | ||
"ses" : " | "ses" : "hHuidO6MqAwTcqOnZF4Qg", | ||
"data" : { | "data" : { | ||
"trust" : 1, | "trust" : 1, | ||
Рядок 55: | Рядок 53: | ||
==Версия NoDeny== | ==Версия NoDeny== | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=version' --cookie 'noses= | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=version' --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | ||
</source> | </source> | ||
<br> | |||
==Функция api для пользователя== | ==Функция api для пользователя== | ||
Рядок 63: | Рядок 63: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie 'noses= | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | ||
</source> | </source> | ||
В полученном ответе: | В полученном ответе: | ||
usr: данные пользователя | usr : данные пользователя | ||
services: услуги | services: подключенные услуги | ||
credits: кредиты | credits : кредиты | ||
pays: платежи | pays : платежи | ||
Например: | Например: | ||
Рядок 107: | Рядок 107: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \ | ||
--cookie "noses= | --cookie "noses=hHuidO6MqAwTcqOnZF4Qg" | ||
</source> | </source> | ||
Рядок 117: | Рядок 117: | ||
488 - многоадресное сообщение клиентам | 488 - многоадресное сообщение клиентам | ||
==Отправка сообщения администрации== | ===Отправка сообщения администрации=== | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \ | ||
--cookie "noses= | --cookie "noses=hHuidO6MqAwTcqOnZF4Qg" \ | ||
-X POST -d "msg=У меня не работает интернет" | -X POST -d "msg=У меня не работает интернет" | ||
</source> | </source> | ||
<br> | |||
===История подключений=== | ===История подключений=== | ||
Рядок 130: | Рядок 131: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \ | ||
--cookie "noses= | --cookie "noses=hHuidO6MqAwTcqOnZF4Qg" | ||
</source> | </source> | ||
Рядок 140: | Рядок 141: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_select' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_select' \ | ||
--cookie "noses= | --cookie "noses=hHuidO6MqAwTcqOnZF4Qg" | ||
</source> | </source> | ||
Рядок 152: | Рядок 153: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&service_id=63' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&service_id=63' \ | ||
--cookie "noses= | --cookie "noses=hHuidO6MqAwTcqOnZF4Qg" | ||
</source> | </source> | ||
Рядок 160: | Рядок 161: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&cmd=set_next&usr_service_id=1234&service_id=63' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&cmd=set_next&usr_service_id=1234&service_id=63' \ | ||
--cookie 'noses= | --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | ||
</source> | </source> | ||
Рядок 171: | Рядок 172: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_credit' \ | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_credit' \ | ||
--cookie 'noses= | --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | ||
</source> | </source> | ||
Рядок 186: | Рядок 187: | ||
} | } | ||
</pre> | </pre> | ||
Получение кредита: | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_credit&go=1' \ | |||
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | |||
</source> | |||
<br><br> | |||
Результат в ключе result: | |||
<pre> | |||
ok : успешно | |||
blocked : существует платеж-блокировка взятия кредита | |||
other_exists : существует активный кредит | |||
no_more : ранее брался кредит и он уже возвращен. Тем не менее после него не было платежей на сумму бОльшую суммы кредита | |||
many_nopay_days : не было ни одного положительного платежа за количество дней, указанных в настройках модуля | |||
</pre> | |||
Пример ответа: | |||
<pre> | |||
{ | |||
"result" : "blocked" | |||
} | |||
</pre> | |||
<br><br> | |||
===Пополнение счета карточкой пополнения счета=== | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_cards&cod=21242830587619' \ | |||
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | |||
</source> | |||
<br> | |||
Результат в ключе result: | |||
<pre> | |||
ok : успешно | |||
wrong_code : неверный код пополнения | |||
already_activated : карточка уже активирована | |||
</pre> | |||
<br><br> | <br><br> | ||
Рядок 191: | Рядок 235: | ||
<source lang="bash"> | <source lang="bash"> | ||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_gcm& | curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_gcm®_id=c-kkWVxpBpM:APA91bFZGzWjxjWtnX2m0iu4yq-koveiZCk' \ | ||
--cookie 'noses= | --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | ||
</source> | </source> | ||
В результате параметр reg_id должен записаться в таблицу notifications_users | В результате параметр reg_id должен записаться в таблицу notifications_users | ||
<br><br> | |||
===Создание заявки на оплату в платежной системе Fondy=== | ===Создание заявки на оплату в платежной системе Fondy=== | ||
Рядок 204: | Рядок 250: | ||
</source> | </source> | ||
Будет возвращен id платежа-заявки для оплаты | Будет возвращен id платежа-заявки для оплаты, а также сумма для оплаты (сумма может быть больше заказанной из-за комиссии) | ||
<br> | |||
===Создание заявки на оплату в платежной системе Liqpay=== | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_lpay&amt=100' \ | |||
--cookie 'noses=o5U0SSeFy5FiJWv5GaWjng' | |||
</source> | |||
Будет возвращен id платежа-заявки для оплаты, а также сумма для оплаты (сумма может быть больше заказанной из-за комиссии) | |||
<br><br> | |||
===Автоматическое пополнение счета=== | |||
====Список токенов==== | |||
<br> | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays' \ | |||
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | |||
</source> | |||
<br> | |||
Результат в ключе result: | |||
<pre> | |||
{ | |||
"result" : [ | |||
{ | |||
"expire_time" : "0", | |||
"last_pay_time" : "28.11.2021 19:48", | |||
"id" : "107", | |||
"type" : "paytoken", | |||
"enabled" : "0", | |||
"uid" : "188", | |||
"create_time" : "1638121721", | |||
"paysystem" : "fondy", | |||
"card" : "473118XXXXXX9680", | |||
"token" : "1e5aXXXXXXXXXXXXXX5b3" | |||
} | |||
] | |||
} | |||
</pre> | |||
Или когда нет ни одного токена: | |||
<pre> | |||
{ | |||
"err_cod" : "no_tokens", | |||
"error" : "Ще не підключено жодної карти, по якій можна здійснювати автоматичні платежі. | |||
Вам потрібно здійснити оплату як зазвичай і ми додамо карту, яку ви використовували" | |||
} | |||
</pre> | |||
<br> | |||
<br> | |||
====Включение токена==== | |||
<br> | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays&id=107&act=on' \ | |||
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | |||
</source> | |||
<br> | |||
====Выключение токена==== | |||
<br> | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays&id=107&act=off' \ | |||
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg' | |||
</source> | |||
<br> | |||
===Модуль опроса=== | |||
<br> | |||
[[Модуль опроса. API|Документация]] | |||
<br> | |||
<br> | |||
==Функции api для администратора== | ==Функции api для администратора== | ||
===Получение | ===Получение данных абонентов=== | ||
<source lang="bash"> | <source lang="bash"> | ||
Рядок 223: | Рядок 346: | ||
* last_auth - время последней активности по авторизации | * last_auth - время последней активности по авторизации | ||
Начиная с ревизии 681: если необходимо получить только определенные поля, то их имена надо задать через запятую в параметре fields: | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=api_users&fields=name,last_auth' \ | |||
--cookie 'noses=OIcU//chVAcIQH1AX158Ww' | |||
</source> | |||
Для получения всех допполей: fields=dopfields | |||
<br> | |||
===Получение списка тикетов=== | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=op&act=tickets&start_date=31.01.2023&end_date=16.09.2023' \ | |||
--cookie 'noses=OIcU//chVAcIQH1AX158Ww' | |||
</source> | |||
start_date и end_date фильтруют список по дате создания (включительно, т.е. в примере будут получены все тикеты с датой создания от 31.01.2023 00:00:00 до 16.09.2023 23:59:59). end_date необязательный параметр. | |||
Возможные фильтры: | |||
* creator - id создателя тикета | |||
* performer - id любого из исполнителей (performer=0 - без исполнителя) | |||
* level - приоритет | |||
* type - тип (в виде числа). Типы задаються вами в настройках тикетов | |||
* search_str - поиск по фрагменту текста в теме/комментарии или в любом сообщении тикета | |||
* state - состояние: | |||
** -1 - незакрытый тикет | |||
** new - открытый | |||
** active - в работе | |||
** failed - не может быть исполнен | |||
** check - необходима проверка | |||
** alert - тревога | |||
* private - приватность (1 - приватные, 0 - нет) | |||
В ответе: | |||
* id - id тикета | |||
* subject - тема тикета | |||
* comment - комментарий | |||
* state - статус тикета | |||
* client_informed (1 - клиент проинформирован) | |||
* performer_informed (1 - исполнитель проинформирован) | |||
* creator - кто создал тикет | |||
* updater - кто последним изменил тикет | |||
* client - с кем связан тикет, если ни с кем, то {} | |||
* performer - исполнитель 1 или {} | |||
* performer2 - исполнитель 2 или {} | |||
* performer3 - исполнитель 3 или {} | |||
* performer_grp - поле "передано в отдел", когда исполнитель не выбран, однако известно в какой группе он должен быть | |||
Чтобы администратор (оператор) имел доступ к тикетам, необходимо чтобы его административная запись была связана с какой-либо учетной записью в списке клиентов - рекомендуем сделать групу «сотрудники»/«техподдержка»/«монтажники»... | |||
Также у административной записи существует привилегия «Руководитель. Доступ ко всем тикетам». Если данная галка не стоит, то оператор увидит только те тикеты, которые либо не связаны ни с каким абонентом, либо связаны с абонентом, к группе которого есть доступ. Однако недоступный тикет может стать доступным, если в качестве исполнителя (любого из трех) будет назначен текущий оператор либо же параметр «передать в отдел» будет таким же как группа оператора (например, передано в отдел «монтажники»). Таким образом, монтажникам можно не давать доступ к абонентам, а руководитель будет назначать тикет конкретному монтажнику или передавать в отдель и там монтаджники сами разберутся | |||
===Получение всех данных тикета #165 === | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=op&act=tickets&op=edit&id=165' \ | |||
--cookie 'noses=OIcU//chVAcIQH1AX158Ww' | |||
</source> | |||
В ответе: | |||
* data - текущие данные тикета | |||
* history - лог изменений | |||
Структура лога: | |||
* created_ts - таймстамп события | |||
* created_time - время события в текстовом виде | |||
* author - id кто изменил запись (по таблице администраторов) | |||
* changes - список измененных полей: | |||
** имя поля | |||
** предыдущее значение | |||
** установленное значение | |||
===Получение данных абонента=== | |||
Для учетной записи с id=5: | |||
<source lang="bash"> | |||
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main&uid=5' \ | |||
--cookie 'noses=OIcU//chVAcIQH1AX158Ww' | |||
</source> | |||
<br> | |||
===Получение данных по всем услугам=== | ===Получение данных по всем услугам=== | ||
Рядок 230: | Рядок 441: | ||
--cookie 'noses=OIcU//chVAcIQH1AX158Ww' | --cookie 'noses=OIcU//chVAcIQH1AX158Ww' | ||
</source> | </source> | ||
<br> | |||
===Получение информации по дополнительным полям учетных записей=== | ===Получение информации по дополнительным полям учетных записей=== | ||
Рядок 251: | Рядок 464: | ||
** i - запретить редактирование (кроме суперадмина) | ** i - запретить редактирование (кроме суперадмина) | ||
** j - сортировать как число на странице поиска абонентов | ** j - сортировать как число на странице поиска абонентов | ||
** k - можно выбрать несколько значений | |||
* type - тип поля | * type - тип поля | ||
Если тип поля select, то в param будет список значений для данного поля, при этом ключ - строка, которая хранится в базе, значение - строка, которая отображается пользователю | Если тип поля select, то в param будет список значений для данного поля, при этом ключ - строка, которая хранится в базе, значение - строка, которая отображается пользователю |
Поточна версія на 18:04, 13 травня 2024
Общая информация
API запросы выполняются по http(s)-протоколу, в ответ приходит json. Тестировать API можно с консоли, например:
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl'
В ответ приходит сообщение об ошибке «запрос не авторизован»:
{
"error" : "Вы не авторизованы",
"err_cod" : "unauthorized"
}
Если в ответе API будет присутствовать ключ error - это означает, что произошла ошибка и в данном ключе текст ошибки. В большинстве случаев данный текст можно показывать абонентам. Может присутствовать ключ err_cod - код ошибки, который не зависит от локализации. Варианты:
unauthorized - либо не передана сессия, либо некорректная, либо устарела wrong_password - неудачная авторизация
Чтобы выполнить API-запрос необходимо сперва залогиниться под логином и паролем пользователя и получить идентификатор сессии, который использовать в cookie в последующих запросах.
В cookie в параметре nolang можно указать язык, например, nolang=UA
Авторизация
Логин: test Пароль: 123
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?_uu=test&_pp=123'
Если логин и пароль верные, приходит ответ:
{
"ses" : "hHuidO6MqAwTcqOnZF4Qg",
"data" : {
"trust" : 1,
"id" : "357",
"role" : "user"
},
"result" : "auth ok"
}
Нас интересует параметр ses, который необходимо посылать во всех запросах в cookie с именем noses
Обратите внимание на параметр role - показывает кто авторизовался, админ или пользователь
Версия NoDeny
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=version' --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Функция api для пользователя
Получение данных пользователя
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
В полученном ответе:
usr : данные пользователя services: подключенные услуги credits : кредиты pays : платежи
Например:
{
"services" : [
{
"id" : "1537",
"service_id" : "33",
"next_service_id" : "33",
"auto_renew" : "0",
"tm_start" : "1468324004",
"tm_end" : "1783684004",
"grp_list" : ",1,",
"pay_id" : "4544",
"category" : "",
"module" : "unlim",
"uid" : "357",
"no_renew" : "1",
"description" : "50 Mb unlim",
"tags" : ",speed=123,",
"finish_count" : "1",
"price" : "10",
},{
...
}
}
Видно, что подключено несколько услуг (2я и последующие заменены на троеточие). next_service_id - id услуги, которая будет подключена когда завершится текущая. Поскольку service_id = next_service_id - будет подключена таже услуга, которая действует в данный момент
Получение списка сообщений
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
--cookie "noses=hHuidO6MqAwTcqOnZF4Qg"
Параметр category:
491 - сообщение от клиента 480 - сообщение клиенту 481 - сообщение клиенту, клиент ознакомлен 482 - сообщение клиенту, блокирующее доступ до ознакомления 488 - многоадресное сообщение клиентам
Отправка сообщения администрации
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
--cookie "noses=hHuidO6MqAwTcqOnZF4Qg" \
-X POST -d "msg=У меня не работает интернет"
История подключений
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \
--cookie "noses=hHuidO6MqAwTcqOnZF4Qg"
Если параметр end = 0 - подключение в данный момент активно
Список услуг, которые можно подключить
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_select' \
--cookie "noses=hHuidO6MqAwTcqOnZF4Qg"
Если в услуге установлен ключ why_not, то в нем указана причина, почему данную услугу нельзя подключить. Варианты:
- already - эта услуга уже подключена
- analog - подключена аналогичная услуга и существует запрет на подключение схожих услуг, например, нельзя подключить два тарифа для доступа в интернет
Подключение услуги
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&service_id=63' \
--cookie "noses=hHuidO6MqAwTcqOnZF4Qg"
Установка "следующей" услуги
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_srv_add&cmd=set_next&usr_service_id=1234&service_id=63' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
usr_service_id - это id уже установленной услуги абонента (поле id в таблице users_services)
Получение кредита
Информация о кредите, который можно получить:
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_credit' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
{ "credit" : { "gr" : "грн", "full_amt" : "3.16", "commission" : 0, "days" : 3, "amt" : 3.16 }, "result" : "ok" }
Получение кредита:
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_credit&go=1' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Результат в ключе result:
ok : успешно blocked : существует платеж-блокировка взятия кредита other_exists : существует активный кредит no_more : ранее брался кредит и он уже возвращен. Тем не менее после него не было платежей на сумму бОльшую суммы кредита many_nopay_days : не было ни одного положительного платежа за количество дней, указанных в настройках модуля
Пример ответа:
{ "result" : "blocked" }
Пополнение счета карточкой пополнения счета
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_cards&cod=21242830587619' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Результат в ключе result:
ok : успешно wrong_code : неверный код пополнения already_activated : карточка уже активирована
Регистрация токена для пуш-уведомлений
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_gcm®_id=c-kkWVxpBpM:APA91bFZGzWjxjWtnX2m0iu4yq-koveiZCk' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
В результате параметр reg_id должен записаться в таблицу notifications_users
Создание заявки на оплату в платежной системе Fondy
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_fondy&amt=100' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
Будет возвращен id платежа-заявки для оплаты, а также сумма для оплаты (сумма может быть больше заказанной из-за комиссии)
Создание заявки на оплату в платежной системе Liqpay
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_lpay&amt=100' \
--cookie 'noses=o5U0SSeFy5FiJWv5GaWjng'
Будет возвращен id платежа-заявки для оплаты, а также сумма для оплаты (сумма может быть больше заказанной из-за комиссии)
Автоматическое пополнение счета
Список токенов
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Результат в ключе result:
{ "result" : [ { "expire_time" : "0", "last_pay_time" : "28.11.2021 19:48", "id" : "107", "type" : "paytoken", "enabled" : "0", "uid" : "188", "create_time" : "1638121721", "paysystem" : "fondy", "card" : "473118XXXXXX9680", "token" : "1e5aXXXXXXXXXXXXXX5b3" } ] }
Или когда нет ни одного токена:
{ "err_cod" : "no_tokens", "error" : "Ще не підключено жодної карти, по якій можна здійснювати автоматичні платежі. Вам потрібно здійснити оплату як зазвичай і ми додамо карту, яку ви використовували" }
Включение токена
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays&id=107&act=on' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Выключение токена
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_autopays&id=107&act=off' \
--cookie 'noses=hHuidO6MqAwTcqOnZF4Qg'
Модуль опроса
Функции api для администратора
Получение данных абонентов
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=api_users' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
В ответе:
- dopdata - дополнительные поля учетной записи
- services - активные услуги
- next_title - имя услуги, которая будет подключена после завершения текущей
- next_service_id - id услуги, которая будет подключена после завершения текущей
- set_next_time - время, когда в последний раз была заказана смена услуги (null если не было заказов)
- last_traf - время последней активности по трафику
- last_auth - время последней активности по авторизации
Начиная с ревизии 681: если необходимо получить только определенные поля, то их имена надо задать через запятую в параметре fields:
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=api_users&fields=name,last_auth' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
Для получения всех допполей: fields=dopfields
Получение списка тикетов
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=op&act=tickets&start_date=31.01.2023&end_date=16.09.2023' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
start_date и end_date фильтруют список по дате создания (включительно, т.е. в примере будут получены все тикеты с датой создания от 31.01.2023 00:00:00 до 16.09.2023 23:59:59). end_date необязательный параметр.
Возможные фильтры:
- creator - id создателя тикета
- performer - id любого из исполнителей (performer=0 - без исполнителя)
- level - приоритет
- type - тип (в виде числа). Типы задаються вами в настройках тикетов
- search_str - поиск по фрагменту текста в теме/комментарии или в любом сообщении тикета
- state - состояние:
- -1 - незакрытый тикет
- new - открытый
- active - в работе
- failed - не может быть исполнен
- check - необходима проверка
- alert - тревога
- private - приватность (1 - приватные, 0 - нет)
В ответе:
- id - id тикета
- subject - тема тикета
- comment - комментарий
- state - статус тикета
- client_informed (1 - клиент проинформирован)
- performer_informed (1 - исполнитель проинформирован)
- creator - кто создал тикет
- updater - кто последним изменил тикет
- client - с кем связан тикет, если ни с кем, то {}
- performer - исполнитель 1 или {}
- performer2 - исполнитель 2 или {}
- performer3 - исполнитель 3 или {}
- performer_grp - поле "передано в отдел", когда исполнитель не выбран, однако известно в какой группе он должен быть
Чтобы администратор (оператор) имел доступ к тикетам, необходимо чтобы его административная запись была связана с какой-либо учетной записью в списке клиентов - рекомендуем сделать групу «сотрудники»/«техподдержка»/«монтажники»...
Также у административной записи существует привилегия «Руководитель. Доступ ко всем тикетам». Если данная галка не стоит, то оператор увидит только те тикеты, которые либо не связаны ни с каким абонентом, либо связаны с абонентом, к группе которого есть доступ. Однако недоступный тикет может стать доступным, если в качестве исполнителя (любого из трех) будет назначен текущий оператор либо же параметр «передать в отдел» будет таким же как группа оператора (например, передано в отдел «монтажники»). Таким образом, монтажникам можно не давать доступ к абонентам, а руководитель будет назначать тикет конкретному монтажнику или передавать в отдель и там монтаджники сами разберутся
Получение всех данных тикета #165
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=op&act=tickets&op=edit&id=165' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
В ответе:
- data - текущие данные тикета
- history - лог изменений
Структура лога:
- created_ts - таймстамп события
- created_time - время события в текстовом виде
- author - id кто изменил запись (по таблице администраторов)
- changes - список измененных полей:
- имя поля
- предыдущее значение
- установленное значение
Получение данных абонента
Для учетной записи с id=5:
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main&uid=5' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
Получение данных по всем услугам
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=api_services' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
Получение информации по дополнительным полям учетных записей
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=api_dopdata' \
--cookie 'noses=OIcU//chVAcIQH1AX158Ww'
В ответе:
- title - имя поля
- name - имя поля в базе данных в таблице data0
- flags - параметры поля
- b - убирать пробелы в начале
- c - убирать пробелы в конце
- f - убирать все пробелы
- d - преобразовать к нижнему регистру
- e - транслировать в латинские символы
- q - титульное поле (выводится в общем списке клиентов)
- h - уникальное
- i - запретить редактирование (кроме суперадмина)
- j - сортировать как число на странице поиска абонентов
- k - можно выбрать несколько значений
- type - тип поля
Если тип поля select, то в param будет список значений для данного поля, при этом ключ - строка, которая хранится в базе, значение - строка, которая отображается пользователю