<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sv</id>
	<title>NoDeny - Внесок користувача [uk]</title>
	<link rel="self" type="application/atom+xml" href="https:///api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sv"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-06T12:52:24Z</updated>
	<subtitle>Внесок користувача</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Модуль лояльности 2</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-14T14:29:48Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Дополнительные параметры */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Принцип работы==&lt;br /&gt;
При завершении услуги типа «интернет», абонент получает бонус - процент от стоимости завершаемой услуги. Процент зависит от «стажа», а именно от количества раз, сколько он использовал услуги интернет. Процент задается в настройках, в таблице «месяцев стажа = процент». В даннном случае принимается, что услуги интернет имеют длительность месяц.&lt;br /&gt;
&lt;br /&gt;
В отличие от модуля лояльности 1, где стаж расчитывается от даты договора или от даты подключения первой услуги, в данном случае стаж хранится в поле допданных. Это дает возможность его редактировать (можно разрешить редактирование только суперадмину), а также учитывать случаи перерывов, когда абонент перестал пользоваться услугами и потом возобновил - как было сказано ранее, стаж считается по количеству раз подключения услуги интернет.&lt;br /&gt;
&lt;br /&gt;
Поле «стаж» увеличивается на единицу при каждом завершении услуги, перед начислением бонуса.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
Настройки → Дополнительные поля → Дополнительный набор: создаем поле&lt;br /&gt;
* имя: Месяцев стажа&lt;br /&gt;
* имя в бд: _loyality_months&lt;br /&gt;
* тип: целое положительное&lt;br /&gt;
* можно поставить галку «запретить редактирование»&lt;br /&gt;
&lt;br /&gt;
Настройки → Кабинет абонента → Список плагинов в порядке отображения в меню: добавляем loyalty&lt;br /&gt;
&lt;br /&gt;
Настройки → Группы: поставить галку отключения модуля лояльности для тех групп, где он не нужен&lt;br /&gt;
&lt;br /&gt;
==Дополнительные параметры==&lt;br /&gt;
&lt;br /&gt;
* Количество дней после завершения услуги, по прошествии которых стаж будет обнулен. 0 - не использовать фичу обнуления. При обнулении создается комментарий клиенту, который видят только админы, в какое время произошло данное событие&lt;br /&gt;
* поле _loyality_months в таблице допданных 2 (data1) или в таблице основных допданных (data0)&lt;br /&gt;
* переключатель да/нет - стаж и процент начисляются только за услуги с тегом loyalty&lt;br /&gt;
* Отключить модуль если у абонента установлена скидка&lt;br /&gt;
&lt;br /&gt;
==Нюансы==&lt;br /&gt;
&lt;br /&gt;
* Если услуга завершается оператором досрочно - бонус начисляется пропорционально времени использования услуги&lt;br /&gt;
* Если услуга завершается оператором досрочно и время ее использования меньше 50% - счетчик стажа не увеличивается на единицу&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-12T08:28:40Z</updated>

		<summary type="html">&lt;p&gt;Sv: Sv перейменував сторінку з CityPay на Hummingbot без створення перенаправлення&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;br /&gt;
&lt;br /&gt;
==запуск скрипту формування rsi==&lt;br /&gt;
&lt;br /&gt;
Робив по цій докє: https://hummingbot.org/v2-strategies/walkthrough/&lt;br /&gt;
&lt;br /&gt;
Сходу не запуститься бо:&lt;br /&gt;
&lt;br /&gt;
# воно зробить конфіг і там треба його поправити - сказати яку пару моніторить і де брати інфу&lt;br /&gt;
# ввести ключи від того, де будемо брати інфо&lt;br /&gt;
&lt;br /&gt;
Може є якісь конектори, які можуть без ключів отримувати дані, я не знаю - у мене бу ключ бінанса. Тому я набрав в консолі hummingbot-а (в його псевдографічному інтерфейсі):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
воно спитало ключ API і секретний ключ. Я ввів їх. Після чого в консолі:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воно вивело можливі конекшини і напроти binance_perpetual поставило yes-yes.&lt;br /&gt;
&lt;br /&gt;
В основній системі редагую  hummingbot/conf/scripts/conf_v2_directional_rsi_1.yml - міняю пару, а також exchange: binance_perpetual&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:33:39Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* запуск скрипту формування rsi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;br /&gt;
&lt;br /&gt;
==запуск скрипту формування rsi==&lt;br /&gt;
&lt;br /&gt;
Робив по цій докє: https://hummingbot.org/v2-strategies/walkthrough/&lt;br /&gt;
&lt;br /&gt;
Сходу не запуститься бо:&lt;br /&gt;
&lt;br /&gt;
# воно зробить конфіг і там треба його поправити - сказати яку пару моніторить і де брати інфу&lt;br /&gt;
# ввести ключи від того, де будемо брати інфо&lt;br /&gt;
&lt;br /&gt;
Може є якісь конектори, які можуть без ключів отримувати дані, я не знаю - у мене бу ключ бінанса. Тому я набрав в консолі hummingbot-а (в його псевдографічному інтерфейсі):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
воно спитало ключ API і секретний ключ. Я ввів їх. Після чого в консолі:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воно вивело можливі конекшини і напроти binance_perpetual поставило yes-yes.&lt;br /&gt;
&lt;br /&gt;
В основній системі редагую  hummingbot/conf/scripts/conf_v2_directional_rsi_1.yml - міняю пару, а також exchange: binance_perpetual&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:33:02Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* запуск скрипту формування rsi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;br /&gt;
&lt;br /&gt;
==запуск скрипту формування rsi==&lt;br /&gt;
&lt;br /&gt;
Робив по цій докє: https://hummingbot.org/v2-strategies/walkthrough/&lt;br /&gt;
&lt;br /&gt;
Сходу не запуститься бо:&lt;br /&gt;
&lt;br /&gt;
# воно зробить конфіг і там треба його поправити - сказати яку пару моніторить і де брати інфу&lt;br /&gt;
# ввести ключи від того, де будемо брати інфо&lt;br /&gt;
&lt;br /&gt;
Може є якісь конектори, які можуть без ключів отримувати дані, я не знаю - у мене бу ключ бінанса. Тому я набрав в консолі hummingbot (в його псевдографічному інтерфейсі):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
воно спитало 2 ключ API і секретний ключ. Я ввів їх. Після чого в консолі:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воно вивело можливі конекшини і напроти binance_perpetual поставило yes-yes.&lt;br /&gt;
&lt;br /&gt;
В основній системі редагую  hummingbot/conf/scripts/conf_v2_directional_rsi_1.yml - міняю пару, а також exchange: binance_perpetual&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:32:23Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* запуск скрипту формування rsi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;br /&gt;
&lt;br /&gt;
==запуск скрипту формування rsi==&lt;br /&gt;
&lt;br /&gt;
Робив по цій докє: https://hummingbot.org/v2-strategies/walkthrough/&lt;br /&gt;
&lt;br /&gt;
Сходу не запуститься бо:&lt;br /&gt;
&lt;br /&gt;
# воно зробить конфіг і там треба його поправити - сказати яку пару моніторить і де брати інфу&lt;br /&gt;
# ввести ключи від того, де будемо брати інфо&lt;br /&gt;
&lt;br /&gt;
Може є якість конектори, які можуть без ключів отримувати дані, я не знаю - у мене бу ключ бінанса. Тому я набрав в консолі hummingbot (в його псевдографічному інтерфейсі):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
воно спитало 2 ключ API і секретний ключ. Я ввів їх. Після чого в консолі:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воно вивело можливі конекшини і напроти binance_perpetual поставило yes-yes.&lt;br /&gt;
&lt;br /&gt;
В основній системі редагую  hummingbot/conf/scripts/conf_v2_directional_rsi_1.yml - міняю пару, а також exchange: binance_perpetual&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:31:19Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;br /&gt;
&lt;br /&gt;
==запуск скрипту формування rsi==&lt;br /&gt;
&lt;br /&gt;
Робив по цій докє: https://hummingbot.org/v2-strategies/walkthrough/&lt;br /&gt;
&lt;br /&gt;
Сходу не запуститься бо:&lt;br /&gt;
1) воно зробить конфіг і там треба його поправити - сказати яку пару моніторить і де брати інфу&lt;br /&gt;
2) ввести ключи від того, де будемо брати інфо&lt;br /&gt;
&lt;br /&gt;
Може є якість конектори, які можуть без ключів отримувати дані, я не знаю - у мене бу ключ бінанса. Тому я набрав в консолі hummingbot (в його псевдографічному інтерфейсі):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
воно спитало 2 ключ API і секретний ключ. Я ввів їх. Після чого в консолі:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect binance_perpetual&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Воно вивело можливі конекшини і напроти binance_perpetual поставило yes-yes.&lt;br /&gt;
&lt;br /&gt;
В основній системі редагую  hummingbot/conf/scripts/conf_v2_directional_rsi_1.yml - міняю пару, а також exchange: binance_perpetual&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:21:56Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тут: клонується проєкт, запускається докер контейнер а також піключаємося до консолі. Там псевдографічний інтерфейс. Спочатку виводять попередження, що трейдінг не для дітей. Потім просять придумати пароль. Для тесту я ввожу admin&lt;br /&gt;
&lt;br /&gt;
==hummingbot-api==&lt;br /&gt;
&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot-api&lt;br /&gt;
&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot-api.git&lt;br /&gt;
cd hummingbot-api&lt;br /&gt;
chmod +x setup.sh&lt;br /&gt;
./setup.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Відкриваю в браузері http://127.0.0.1:8000/ і отримую&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;name&amp;quot;:&amp;quot;Hummingbot API&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;,&amp;quot;status&amp;quot;:&amp;quot;running&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- апі працює&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Hummingbot</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-11-07T11:14:36Z</updated>

		<summary type="html">&lt;p&gt;Sv: Створена сторінка: ==hummingbot== Сторінка: https://github.com/hummingbot/hummingbot Звідти інфо як ставити:  &amp;lt;pre&amp;gt; git clone https://github.com/hummingbot/hummingbot.git cd hummingbot docker compose up -d docker attach hummingbot &amp;lt;/pre&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==hummingbot==&lt;br /&gt;
Сторінка: https://github.com/hummingbot/hummingbot&lt;br /&gt;
Звідти інфо як ставити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/hummingbot/hummingbot.git&lt;br /&gt;
cd hummingbot&lt;br /&gt;
docker compose up -d&lt;br /&gt;
docker attach hummingbot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>OttClub</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-28T08:13:39Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
В административном интерфейсе NoDeny в разделе Настройки → Модули → OttClub заполняем поля согласно данным, выданным компанией OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки» → «Кабинет клиента» в поле «Список плагинов в порядке отображения в меню» добавляем строку «ottclub». Если необходимо, чтобы пункт меню был доступен только для определенных групп абонентов, читаем [[Настройка меню кабинета абонента|про настройку меню]].&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки» → «Услуги» создаем услугу OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки» → «Ядро» → «API очередь» ставим «Да» для параметра «Запускать модуль при запуске ядра NoDeny». Рестартуем ядро. Этим мы запустим модуль ядра api_queue, который будет посылать API запросы OttClub. В случае ошибки он пошлет запрос еще раз через небольшой период времени, а в случае еще одной ошибки - еще один запрос через бОльший период. В первый раз, этот модуль лучше запустить в консоли:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;perl nokernel.pl -v -m api_queue&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>OttClub</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-28T08:12:40Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
В административном интерфейсе NoDeny в разделе Настройки→Модули→OttClub заполняем поля согласно данным, выданным компанией OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки»→«Кабинет клиента» в поле «Список плагинов в порядке отображения в меню» добавляем строку «ottclub». Если необходимо, чтобы пункт меню был доступен только для определенных групп абонентов, читаем [[Настройка меню кабинета абонента|про настройку меню]].&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки»→«Услуги» создаем услугу OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе «Настройки»→«Ядро»→«API очередь» ставим «Да» для параметра «Запускать модуль при запуске ядра NoDeny». Рестартуем ядро. Этим мы запустим модуль ядра api_queue, который будет посылать API запросы OttClub. В случае ошибки он пошлет запрос еще раз через небольшой период времени, а в случае еще одной ошибки - еще один запрос через бОльший период. В первый раз, этот модуль лучше запустить в консоли:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;perl nokernel.pl -v -m api_queue&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>OttClub</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-28T08:11:34Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Настройка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
В административном интерфейсе NoDeny в разделе Настройки→Модули→OttClub заполняем поля согласно данным, выданным компанией OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе Настройки→Кабинет клиента в поле «Список плагинов в порядке отображения в меню» добавляем строку «ottclub». Если необходимо, чтобы пункт меню был доступен только для определенных групп абонентов, читаем [[Настройка меню кабинета абонента|про настройку меню]].&lt;br /&gt;
&lt;br /&gt;
В разделе Настройки→Услуги создаем услугу OttClub.&lt;br /&gt;
&lt;br /&gt;
В разделе Настройки→Ядро→API очередь ставим «Да» для параметра «Запускать модуль при запуске ядра NoDeny». Рестартуем ядро. Этим мы запустим модуль ядра api_queue, который будет посылать API запросы OttClub. В случае ошибки он пошлет запрос еще раз через небольшой период времени, а в случае еще одной ошибки - еще один запрос через бОльший период. В первый раз, этот модуль лучше запустить в консоли:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;perl nokernel.pl -v -m api_queue&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Настройка меню кабинета абонента</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-26T07:58:28Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Пример 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чтобы получить разное меню либо разный порядок пунктов  в зависимости от группы абонента или состояния доступа, найдите в настройках личного кабинета параметр «список плагинов» и поставьте нужные фильтры перед списком плагинов, например:&lt;br /&gt;
&lt;br /&gt;
===Пример 1===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lpay&lt;br /&gt;
fondy&lt;br /&gt;
   grp:9&lt;br /&gt;
credit&lt;br /&gt;
   grp:8&lt;br /&gt;
message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь у абонентов группы 9 будет 3 пункта меню в таком порядке:&lt;br /&gt;
*Liqpay&lt;br /&gt;
*Fondy&lt;br /&gt;
*Кредит&lt;br /&gt;
&lt;br /&gt;
У абонентов группы 8 будет 3 пункта меню в таком порядке:&lt;br /&gt;
*Liqpay&lt;br /&gt;
*Fondy&lt;br /&gt;
*Сообщения администрации&lt;br /&gt;
&lt;br /&gt;
У абонентов иных групп будет всего 2 пункта меню:&lt;br /&gt;
*Liqpay&lt;br /&gt;
*Fondy&lt;br /&gt;
&lt;br /&gt;
===Пример 2===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   state:on&lt;br /&gt;
lpay&lt;br /&gt;
remitter&lt;br /&gt;
cash_order&lt;br /&gt;
auth_log&lt;br /&gt;
   state:off&lt;br /&gt;
auth_log&lt;br /&gt;
remitter&lt;br /&gt;
cash_order&lt;br /&gt;
lpay&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере в зависимости от состояния доступа будет разный порядок пунктов меню&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>OttClub</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-26T07:57:39Z</updated>

		<summary type="html">&lt;p&gt;Sv: Захистив «OttClub» ([Редагування=Дозволено тільки адміністраторам] (безстроково) [Перейменування=Дозволено тільки адміністраторам] (безстроково))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
В административном интерфейсе NoDeny заходим в раздел Настройки→Модули→OttClub и заполняем поля согласно данным, выданным компанией OttClub.&lt;br /&gt;
&lt;br /&gt;
Переходим в раздел «Кабинет клиента» и в поле «Список плагинов в порядке отображения в меню» добавляем строку «ottclub». Если необходимо, чтобы пункт меню был доступен только для определенных групп абонентов, читаем [[Настройка меню кабинета абонента|про настройку меню]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>OttClub</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-26T07:56:40Z</updated>

		<summary type="html">&lt;p&gt;Sv: Створена сторінка: [https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.  ==Настройка==  В административном интерфейсе NoDeny заходим в раздел Настройки→Модули→OttClub и заполняем поля согласно данным, выданным компанией OttClub.  Переходим в раздел «Кабинет клиента» и в поле «Список п...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.ottclub.tv/ OttClub] - сервис онлайн телевидения.&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
В административном интерфейсе NoDeny заходим в раздел Настройки→Модули→OttClub и заполняем поля согласно данным, выданным компанией OttClub.&lt;br /&gt;
&lt;br /&gt;
Переходим в раздел «Кабинет клиента» и в поле «Список плагинов в порядке отображения в меню» добавляем строку «ottclub». Если необходимо, чтобы пункт меню был доступен только для определенных групп абонентов, читаем [[Настройка меню кабинета абонента|про настройку меню]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-10-26T07:48:22Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Принять решение переходить ли на NoDeny]]&lt;br /&gt;
* [[Краткая информация]]&lt;br /&gt;
** [http://nodeny.com.ua/ Официальный сайт]&lt;br /&gt;
** [http://forum.nodeny.com.ua/ Форум]&lt;br /&gt;
* [[Установка NoDeny]]&lt;br /&gt;
* [[NoDeny Next]]&lt;br /&gt;
* FAQ&lt;br /&gt;
** [[Узнать версию NoDeny]]&lt;br /&gt;
** [[Установка модулей]]&lt;br /&gt;
** [[Debug режим]]&lt;br /&gt;
** [[Безопасность]]&lt;br /&gt;
** [[Ip абонента|Выдача ip абоненту]]&lt;br /&gt;
** Услуги&lt;br /&gt;
*** [[Заморозка услуг|Заморозка]]&lt;br /&gt;
*** [[Разрешить подключать услугу только один раз|Подключить только один раз]]&lt;br /&gt;
** [[Ядро]]&lt;br /&gt;
*** [[Запуск модулей ядра|Запуск модулей]]&lt;br /&gt;
** [[Зависимые выпадающие списки]]&lt;br /&gt;
** [[Уникальные поля учетной записи]]&lt;br /&gt;
** [[Пуш-уведомления]]&lt;br /&gt;
** [[Трафик в другой БД]]&lt;br /&gt;
** [[Push уведомления]]&lt;br /&gt;
** [[Теги в услугах]]&lt;br /&gt;
* [[Сервер доступа]]&lt;br /&gt;
** FreeBSD / Linux&lt;br /&gt;
*** [[Dhcp|DHCP]]&lt;br /&gt;
**** [[Dhcp без Radius]]&lt;br /&gt;
**** [[Dhcp+Radius|Dhcp + Radius 2]]&lt;br /&gt;
**** [[Dhcp + Radius 3|Dhcp + Radius 2 (FreeBSD)]]&lt;br /&gt;
*****[[Dhcp запускается на FreeBSD]]&lt;br /&gt;
**** [[Dhcp + Radius 3 (Linux)]]&lt;br /&gt;
**** [[dhcp-конфиг с помощью make config|Автогенерация конфига]]&lt;br /&gt;
*** [[PPPoE|PPPoE  (Freeradius 2)]]&lt;br /&gt;
*** [[Pppoe (mpd5 + freeradius 3)|PPPoE  (Freeradius 3)]]&lt;br /&gt;
** [[Микротик]]&lt;br /&gt;
*** DHCP&lt;br /&gt;
**** [[mirkotik dhcp|с использованием Radius]]&lt;br /&gt;
**** [[Конфиг для Mikrotik с помощью make config|без использования Radius]]&lt;br /&gt;
*** [[Микротик#Заглушка|Заглушка]]&lt;br /&gt;
*** [[Pppoe|PPPoE]]&lt;br /&gt;
* [[Подключения]]&lt;br /&gt;
&lt;br /&gt;
==[[Модули]]==&lt;br /&gt;
* Авторизация в личном кабинете&lt;br /&gt;
** [[Авторизация через Google|через Google]]&lt;br /&gt;
** [[Авторизация через Facebook|через Facebook]]&lt;br /&gt;
** [[Авторизация через Telegram|через Telegram]]&lt;br /&gt;
* Услуги&lt;br /&gt;
** [[Честные услуги]]&lt;br /&gt;
** [[Длинные услуги]]&lt;br /&gt;
** [[Короткие услуги]]&lt;br /&gt;
** [[Модуль приостановки услуг|Приостановка услуг]]&lt;br /&gt;
** [[Service_rules|Правила смены услуг]]&lt;br /&gt;
** [[Снятие за меньший тариф]]&lt;br /&gt;
** [[Массовое изменение «следующей» услуги]]&lt;br /&gt;
** [[Услуга с настраиваемым периодом]]&lt;br /&gt;
** [[Короткий доступ]]&lt;br /&gt;
** [[Цена из допполя]]&lt;br /&gt;
** [[Услуги по формуле]]&lt;br /&gt;
** [[Модуль группировки списаний|Группировка списаний]]&lt;br /&gt;
* IP&lt;br /&gt;
** [[Привязка ip к login]]&lt;br /&gt;
** [[Модуль Place ip|Place ip]]&lt;br /&gt;
* [[Sms]]&lt;br /&gt;
**[[TurboSms]]&lt;br /&gt;
**[[TurboSms viber/sms]]&lt;br /&gt;
**[[LifeSms]]&lt;br /&gt;
**[[Sms о пополнении счета]]&lt;br /&gt;
**[[Sms с балансами всем абонентам]]&lt;br /&gt;
* [[Модуль DHCP|DHCP]]&lt;br /&gt;
* [[Карта]]&lt;br /&gt;
** [[Google карти|Google]]&lt;br /&gt;
** [[Leaflet карти|Leaflet]]&lt;br /&gt;
* [[Пингсервер]]&lt;br /&gt;
* [[Редактор ВОЛС]]&lt;br /&gt;
* [[Заглушка]]&lt;br /&gt;
* [[Модуль &amp;quot;Акция&amp;quot;|Акция]]&lt;br /&gt;
* [[Модуль &amp;quot;Бонусный счет&amp;quot;|Бонусный счет]]&lt;br /&gt;
* [[Модуль &amp;quot;Поделись балансом&amp;quot;|Поделись балансом]]&lt;br /&gt;
* [[Модуль лояльности и &amp;quot;Приведи друга&amp;quot;]]&lt;br /&gt;
* [[Модуль лояльности 2]]&lt;br /&gt;
* [[Родительский контроль]]&lt;br /&gt;
* [[Карточки пополнения счета]]&lt;br /&gt;
* [[Кредит. Версия 2]]&lt;br /&gt;
* [[Платежи из файла]]&lt;br /&gt;
* [[Binotel телефония]]&lt;br /&gt;
* [[COA|COA (old version)]]&lt;br /&gt;
* [[COA new version|COA]]&lt;br /&gt;
* [[WebCoa]]&lt;br /&gt;
* [[Netflow]]&lt;br /&gt;
* [[Make config]]&lt;br /&gt;
* [[Pingserver]]&lt;br /&gt;
* [[Radius атрибуты]]&lt;br /&gt;
* [[Snmp]]&lt;br /&gt;
**[[dhcp-конфиг с помощью make config|Пример для dhcp-сервера]]&lt;br /&gt;
**[[Конфиг для Mikrotik с помощью make config|Пример для Mikrotik]]&lt;br /&gt;
* [[Ограничения доступа персонала по времени]]&lt;br /&gt;
* [[Ограничение доступа персонала по ip]]&lt;br /&gt;
* [[Блокировка ненастроенных учеток]]&lt;br /&gt;
* [[Допполе «линк»]]&lt;br /&gt;
* [[Тикетная система]]&lt;br /&gt;
**[[Настройка тикетной системы|Настройка]]&lt;br /&gt;
** [[Сообщения в Telegram]]&lt;br /&gt;
* Видеосервисы&lt;br /&gt;
** [[OmegaTV|Omega TV]]&lt;br /&gt;
** [[Omega TV. Оптимизация API]]&lt;br /&gt;
** [[OttClub]]&lt;br /&gt;
** [[TrinityTV|Trinity TV]]&lt;br /&gt;
** [[Trinity-TV. Оптимизация API|Trinity TV. Оптимизация API]]&lt;br /&gt;
** [[Megogo]]&lt;br /&gt;
** [[Megogo. Оптимизация API]]&lt;br /&gt;
** [[Iptvportal]]&lt;br /&gt;
* Платежные системы&lt;br /&gt;
** [[Терминалы Приватбанка]]&lt;br /&gt;
** [[Терминалы Приватбанка, версия 2]]&lt;br /&gt;
** [[Liqpay]]&lt;br /&gt;
** [[Liqpay 3]]&lt;br /&gt;
** [[24nonStop]]&lt;br /&gt;
** [[City24]]&lt;br /&gt;
** [[CityPay]]&lt;br /&gt;
** [[CloudPayments]]&lt;br /&gt;
** [[Easypay]]&lt;br /&gt;
** [[E-pay]]&lt;br /&gt;
** [[E-ПЛАТЕЖКА]]&lt;br /&gt;
** [[Fondy]]&lt;br /&gt;
** [[Globalmoney]]&lt;br /&gt;
** [[IBox]]&lt;br /&gt;
** [[Monobank]]&lt;br /&gt;
** [[Monobank терминалы]]&lt;br /&gt;
** [[Paymaster]]&lt;br /&gt;
** [[Platezhka]]&lt;br /&gt;
** [[Platon]]&lt;br /&gt;
** [[Portmone]]&lt;br /&gt;
** [[Qiwi]]&lt;br /&gt;
** [[Tascombank]]&lt;br /&gt;
** [[Ukrpays]]&lt;br /&gt;
** [[Walletone]]&lt;br /&gt;
&lt;br /&gt;
==Иное==&lt;br /&gt;
&lt;br /&gt;
* [[Фичи на заметку]]&lt;br /&gt;
* [[Подсчет трафика]]&lt;br /&gt;
** [[Модуль ядра ses_traf]]&lt;br /&gt;
* [[Интерфейс контроля для гос.органов]]&lt;br /&gt;
* [[Дополнительные возможности]]&lt;br /&gt;
** [[Гостевой режим]]&lt;br /&gt;
** Личный кабинет&lt;br /&gt;
*** [[Краткая иформация о кабинете абонента|Краткая иформация]]&lt;br /&gt;
*** [[Локализация и пиктограммы у пунктов меню]]&lt;br /&gt;
*** [[Настройка меню кабинета абонента|Разное меню для разных групп]]&lt;br /&gt;
*** [[Дизайн личного кабинета]]&lt;br /&gt;
**** [[Дизайн страницы оплаты]]&lt;br /&gt;
*** [[Переменные шаблона личного кабинета]]&lt;br /&gt;
** [[Шаблоны для экспорта платежей]]&lt;br /&gt;
** [[Бланк настроек]]&lt;br /&gt;
** Разработчикам&lt;br /&gt;
*** [[Таблицы базы данных]]&lt;br /&gt;
*** [[Шаблонизатор]]&lt;br /&gt;
*** [[Программирование]]&lt;br /&gt;
**** [[Рисуем графики]]&lt;br /&gt;
*** [[Патчинг файлов]]&lt;br /&gt;
*** [[Разработчикам: заморозка услуг]]&lt;br /&gt;
* [[Записки админа]]&lt;br /&gt;
* [http://app.nodeny-plus.com.ua/docs/index.html Старая документация]&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Fondy</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-08-22T13:29:40Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Описание==&lt;br /&gt;
[https://fondy.ua/ru/?connect=46 Fondy] - платежная система, работающая в Украине и в Европе. Преимуществом является возможность осуществлять выплаты не только юридическим лицам, но и физлицам на пластиковые карты.&lt;br /&gt;
&lt;br /&gt;
==Процесс оплаты==&lt;br /&gt;
Абонент заходит в личный кабинет и в разделе «Оплата через сервис Fondy» вводит сумму, на которую желает пополнить счет. Если в данный момент баланс отрицательный, модуль подсказывает сумму. После этого абонент переходит на сайт Fondy и вводит реквизиты пластиковой карты. После успешной оплаты, сервис Fondy связывается с вашим сервером NoDeny и платеж проводится в вашей системе. Обычно это происходит довольно быстро.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Дополнительные возможности модуля:&lt;br /&gt;
&lt;br /&gt;
* Позволяет переложить комиссию на абонента как процент от суммы платежа&lt;br /&gt;
* Позволяет использовать для разных абонентов разные мерчанты. Например, в вашей организации будет несколько предпринимателей, между которыми вы хотите распределять поступления с оплат абонентов&lt;br /&gt;
&lt;br /&gt;
==Настройка==&lt;br /&gt;
&lt;br /&gt;
После регистрации и создания мерчанта в Fondy, там же необходимо зайти в технические настройки вашего магазина (мерчанта) и получить 2 параметра: id мерчанта и ключ платежа (публичный и приватный ключи). Эти параметры внести в настройки в раздел «Платежные системы» → «Fondy» в админке вашего биллинга. Заполните остальные параметры этого раздела и не забудьте, как там указано в комментарии проверить «Url NoDeny обработчика ответов от API Fondy».&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Осуществите тестовую оплату. Через небольшое время посмотрите, не появился ли платеж в NoDeny на заданную сумму. Если нет, смотрите логи:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/local/nodeny/logs/fondy_err.log&lt;br /&gt;
/usr/local/nodeny/logs/fondy_ok.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вы можете запросить повторную посылку сигнала «платеж успешен» на странице Fondy - это называется «послать callback».&lt;br /&gt;
&lt;br /&gt;
===Несколько мерчантов===&lt;br /&gt;
&lt;br /&gt;
Если вы хотите, чтобы оплаты шли через разные мерчанты для разных клиентов, вам нужно:&lt;br /&gt;
&lt;br /&gt;
* Создать дополнительное поле с именем, например, «ФОП куратора» или «Мерчант», с именем поля в бд «_merchant» и типом «выпадающий список». Это поле будет говорить о том, какой мерчант использовать при оплате&lt;br /&gt;
* У абонентов заполнить это поле, допустим будут такие варианты:&lt;br /&gt;
** Иванов&lt;br /&gt;
** Петров&lt;br /&gt;
** Сидоров&lt;br /&gt;
* В настойках модуля Fondy в параметре «Имя допполя» ввести «_merchant»&lt;br /&gt;
* В параметре «В каждой строке перечислите через двоеточие»:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Иванов:i1234560:xxxxxxxx&lt;br /&gt;
Петров:i1234561:yyyyyyyy&lt;br /&gt;
Сидоров:i1234562:zzzzzzzz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где i1234560 и xxxxxxxx соответственно публичный и приватный ключи&lt;br /&gt;
&lt;br /&gt;
==Оплата без участия абонента==&lt;br /&gt;
&lt;br /&gt;
Есть возможность автоматического пополнения счета без участия абонента. Если в настройках установить в «да» параметр «Использовать возможность автоматической оплаты по токену без участия абонента», то после успешной оплаты, NoDeny получит от Fondy токен, по которому сможет производить списания с карты без ее номера и без подтверждения.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Autopay.png|833px]]&lt;br /&gt;
&lt;br /&gt;
Списание происходит в момент когда баланс становится отрицательным, например, после подключения услуги. Что нужно:&lt;br /&gt;
* Установить в «да» параметр «Использовать возможность автоматической оплаты по токену без участия абонента» а настройках модуля Fondy&lt;br /&gt;
* В настройках Ядро→Балансы установить в «да» параметр «При отрицательном балансе автоматически пополнять счет абонента, используя токен, выданный платежной системой»&lt;br /&gt;
* Рестартнуть ядро&lt;br /&gt;
* В настройках «Кабинет клиента» добавить плагин autopays&lt;br /&gt;
* Обратиться в поддержку Fondy чтобы они включили возможность оплаты по токену&lt;br /&gt;
&lt;br /&gt;
Благодаря плагину autopays, пользователи смогут включать/выключать автопополнение в личном кабинете.&lt;br /&gt;
&lt;br /&gt;
===Дополнительная информация===&lt;br /&gt;
Токены для пополнения хранятся в таблице paysystems_tokens базы данных.&lt;br /&gt;
&lt;br /&gt;
Чтобы убедиться, что Fondy передает токены, нужно после успешной оплаты посмотреть в лог /usr/local/nodeny/logs/fondy_ok.log и обнаружить присутствие rectoken в фагменте:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  'input' =&amp;gt; {&lt;br /&gt;
      ...&lt;br /&gt;
      ...&lt;br /&gt;
     'rectoken' =&amp;gt; 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',&lt;br /&gt;
      ...&lt;br /&gt;
  },&lt;br /&gt;
  ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Принять решение переходить ли на NoDeny</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T19:53:29Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Большое количество модулей */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Есть ли у вас сеть или еще нет, вы хотите взвесить «за» и «против» для принятия решение нужен ли вам NoDeny. В данном разделе мы попытаемся убедить использовать NoDeny.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большая история==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
NoDeny больше 20 лет. Он разрабатывался в реальной сети с 2004 года. Автор работал в данной сети и реализовывал пожелания как обычных пользователей так и персонала. Тогда биллинг начал распространяться и стал поступать дополнительный фидбек от множества сетей.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Больше чем биллинг==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Биллинг NoDeny это гораздо больше чем управление счетами абонентов. Это система управления всей сетью. Это широкий спектр оборудования и технологий. Это мониторинг с различной визуализацией (графики, карты, схемы). Это тикетная система. Это большое количество платежных систем. И много всего еще.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большое количество модулей==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В NoDeny более 100 модулей! Каждый модуль добавляет какое-либо удобство в работе и персоналу и клиентам, что является конкурентным преимуществом в выборе провайдера.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
NoDeny поддерживает порядка 20 платежных систем. Ваши клиенты смогут оплатить интернет вне дома, например, через мобильник или терминал. Естественно, деньги поступают на счет в автоматическом режиме. Возможно автоматическое списание финансов с карты (этим, естественно, может управлять абонент).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Отправка смс через разных провайдеров. О будущем списании средств. О пополнении счета. Восстановление пароля. Информирование о чем угодно. Можно отослать и массово и одному абоненту.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большое количество схем тарификаций==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В NoDeny мощнейший механизм управлениями тарифами. Тарифы могут быть любой длительности: несколько минут, день, месяц, год или любой иной период. Тарифы могут подстраиваться под любое число месяца, например, сами выйти на списание с 1-е по 1-е число. Тариф может перейти на посуточное списание, если недостаточно финансов на счету. Тариф может быть автоматически заморожен при недостаточности финансов и автоматически разморожен при поступлении денег. Тариф может иметь разную длительность и стоимость для разных абонентов. При подключении тарифа могут учитываться разные условия, например тариф не будет разрешено устанавливать если не заполнены важные данные в учетке абонента. При переходе на более дешевый тариф начисление &amp;quot;штрафа&amp;quot;. Тариф, который нельзя поменять определенный период времени (например, полученный по акции). &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Мощная система привилегий==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
С NoDeny может работать широкий круг работников, у которых будут свои персональные доступы практически на любое действие. Вы можете дать разрешение на просмотр только определенных групп или даже определенных полей учеток. Вы можете настроить NoDeny так, чтобы не произошло утечки информации от недобросовестного персонала. Или, например, дать доступ к конролирующим органам так, чтобы они не могли получить информацию ни сколько у вас абонентов, ни сколько они платят. Любые действия логируются как в базе данных так и в файлах-логах.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Перенос абонентов с иного биллинга ==&lt;br /&gt;
Самый простой способ, который годится для биллингов даже неизвестных автору - экспорт базы данных в формат [https://ru.wikipedia.org/wiki/CSV csv]. Csv - это текстовый файл, где через символ-разделитель идут текстовые поля данных абонентов. Автор обычно пишет персональный скрипт для переноса из csv в NoDeny в течение суток.&lt;br /&gt;
&lt;br /&gt;
Кроме варианта csv, возможен перенос информации путем конвертации базы данных с иных биллингов.&lt;br /&gt;
&lt;br /&gt;
== Тестовый стенд ==&lt;br /&gt;
Вы всегда можете развернуть тестовый стенд, например, просто на виртуальной машине на вашем ноутбуке и пройтись по менюшкам биллинга с уже импортированными данными ваших абонентов. Прогнать типичные действия типа проведения платежей, подключение тарифа, проверить доступ и скорость в интернет, поиск, фильтры и т.д. Таким образом, перед боевым запуском вы будете готовы к вопросам абонентов, будете знать поведение биллинга и как им управлять.&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Принять решение переходить ли на NoDeny</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T19:52:50Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Большая история */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Есть ли у вас сеть или еще нет, вы хотите взвесить «за» и «против» для принятия решение нужен ли вам NoDeny. В данном разделе мы попытаемся убедить использовать NoDeny.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большая история==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
NoDeny больше 20 лет. Он разрабатывался в реальной сети с 2004 года. Автор работал в данной сети и реализовывал пожелания как обычных пользователей так и персонала. Тогда биллинг начал распространяться и стал поступать дополнительный фидбек от множества сетей.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Больше чем биллинг==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Биллинг NoDeny это гораздо больше чем управление счетами абонентов. Это система управления всей сетью. Это широкий спектр оборудования и технологий. Это мониторинг с различной визуализацией (графики, карты, схемы). Это тикетная система. Это большое количество платежных систем. И много всего еще.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большое количество модулей==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В NoDeny практически 100 модулей! Каждый модуль добавляет какое-либо удобство в работе и персоналу и клиентам, что является конкурентным преимуществом в выборе провайдера.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
NoDeny поддерживает порядка 20 платежных систем. Ваши клиенты смогут оплатить интернет вне дома, например, через мобильник или терминал. Естественно, деньги поступают на счет в автоматическом режиме. Возможно автоматическое списание финансов с карты (этим, естественно, может управлять абонент).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Отправка смс через разных провайдеров. О будущем списании средств. О пополнении счета. Восстановление пароля. Информирование о чем угодно. Можно отослать и массово и одному абоненту.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Большое количество схем тарификаций==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В NoDeny мощнейший механизм управлениями тарифами. Тарифы могут быть любой длительности: несколько минут, день, месяц, год или любой иной период. Тарифы могут подстраиваться под любое число месяца, например, сами выйти на списание с 1-е по 1-е число. Тариф может перейти на посуточное списание, если недостаточно финансов на счету. Тариф может быть автоматически заморожен при недостаточности финансов и автоматически разморожен при поступлении денег. Тариф может иметь разную длительность и стоимость для разных абонентов. При подключении тарифа могут учитываться разные условия, например тариф не будет разрешено устанавливать если не заполнены важные данные в учетке абонента. При переходе на более дешевый тариф начисление &amp;quot;штрафа&amp;quot;. Тариф, который нельзя поменять определенный период времени (например, полученный по акции). &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Мощная система привилегий==&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
С NoDeny может работать широкий круг работников, у которых будут свои персональные доступы практически на любое действие. Вы можете дать разрешение на просмотр только определенных групп или даже определенных полей учеток. Вы можете настроить NoDeny так, чтобы не произошло утечки информации от недобросовестного персонала. Или, например, дать доступ к конролирующим органам так, чтобы они не могли получить информацию ни сколько у вас абонентов, ни сколько они платят. Любые действия логируются как в базе данных так и в файлах-логах.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Перенос абонентов с иного биллинга ==&lt;br /&gt;
Самый простой способ, который годится для биллингов даже неизвестных автору - экспорт базы данных в формат [https://ru.wikipedia.org/wiki/CSV csv]. Csv - это текстовый файл, где через символ-разделитель идут текстовые поля данных абонентов. Автор обычно пишет персональный скрипт для переноса из csv в NoDeny в течение суток.&lt;br /&gt;
&lt;br /&gt;
Кроме варианта csv, возможен перенос информации путем конвертации базы данных с иных биллингов.&lt;br /&gt;
&lt;br /&gt;
== Тестовый стенд ==&lt;br /&gt;
Вы всегда можете развернуть тестовый стенд, например, просто на виртуальной машине на вашем ноутбуке и пройтись по менюшкам биллинга с уже импортированными данными ваших абонентов. Прогнать типичные действия типа проведения платежей, подключение тарифа, проверить доступ и скорость в интернет, поиск, фильтры и т.д. Таким образом, перед боевым запуском вы будете готовы к вопросам абонентов, будете знать поведение биллинга и как им управлять.&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:48:13Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Расщепление */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Если вам не нужно расщепление или распределение финансов, у вас должно быть всего одно правило&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз. Если правило срабатывает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
field_name может указывать на допполе или номер (id) группы, в которой находится абонент (field_name  =&amp;gt; 'grp')&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:43:49Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Если вам не нужно расщепление или распределение финансов, у вас должно быть всего одно правило&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз. Если правило срабатывает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:43:18Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Если вам не нужно расщепление или распределение финансов, у вас должно быть всего одно правило&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз. Если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:42:44Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Если вам не нужно расщепление или распределение финансов, у вас должно быть всего одно правило&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:42:09Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Если вам не нужно расщепление, у вас должно быть всего одно правило&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:41:13Z</updated>

		<summary type="html">&lt;p&gt;Sv: Захистив «Monobank терминалы» ([Редагування=Дозволено тільки адміністраторам] (безстроково) [Перейменування=Дозволено тільки адміністраторам] (безстроково))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вам не нужно расщепление, у вас должно быть всего одно правило.&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:41:00Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей и/или распределение между мерчантами.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вам не нужно расщепление, у вас должно быть всего одно правило.&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Monobank терминалы</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T07:40:04Z</updated>

		<summary type="html">&lt;p&gt;Sv: Створена сторінка: Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей.  Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:  &amp;lt;pre&amp;gt; rules =&amp;gt; [     правило 1,     правило 2,     ... ], &amp;lt;/pre&amp;gt;  Если вам не нужно...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Модуль '''monoterminal''' - предназначен для пополнения счета через терминалы Монобанка. Поддерживает расщепление платежей.&lt;br /&gt;
&lt;br /&gt;
Настройки расщепления задаются в файле modules/monoterminal/monoterminal.pl в ключе rules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    правило 1,&lt;br /&gt;
    правило 2,&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вам не нужно расщепление, у вас должно быть всего одно правило.&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры ответа платежной системе&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Правило указывает какие данные должны быть у абонента и если эти данные совпадают - считается, что правило сработало. Например, правило может звучать так: если у абонента поле «обслуживает ФОП» равно «Снеосиков», то ответить платежной системе, что выплаты должны идти на ФОП Снеосиков.&lt;br /&gt;
&lt;br /&gt;
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/local/nodeny/ &amp;amp;&amp;amp; perl -c modules/monoterminal/monoterminal.pl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
От json правила отличаются тем, что:&lt;br /&gt;
* вместо двоеточия используются символы =&amp;gt;&lt;br /&gt;
* ключи можно не обрамлять кавычками&lt;br /&gt;
* можно использовать одинарные кавычки&lt;br /&gt;
&lt;br /&gt;
Пример правил:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '13456789',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ СНЕОСІКОВ',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК ПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001041606722',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {           &lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 100,&lt;br /&gt;
                companyCode =&amp;gt; '333333',&lt;br /&gt;
                serviceCode =&amp;gt; '444444',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    edrpou   =&amp;gt; '7777777',&lt;br /&gt;
                    name     =&amp;gt; 'ТОВ ДЕРЖАК',&lt;br /&gt;
                    bankName =&amp;gt; 'БАНК НЕПРЯМИЙ',&lt;br /&gt;
                    iban     =&amp;gt; 'UA783052990000026001111111111',&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В данном примере 2 правила:&lt;br /&gt;
* для клиентов, у которых допполе «обслуживает ФОП» равно «Снеосиков»&lt;br /&gt;
* для всех остальных клиентов&lt;br /&gt;
&lt;br /&gt;
Детали для данного примера:&lt;br /&gt;
* в вашем NoDeny должно существовать допполе «обслуживает ФОП» с именем _fop в базе данных&lt;br /&gt;
* поле percent указывает на процент платежа, который пойдет на данный ФОП. В примере 100% - это означает, что полная сумма. Таким образом, это пример не использующий расщепление, а просто распределение платежей между ФОП-ами&lt;br /&gt;
* во втором правиле не указаны условия (поля field_name и field_value), что означает «все другие абоненты»&lt;br /&gt;
* поле field_value - должно ссылаться на массив значений (нужно помещать значения в квадратные скобки). Например, если field_value =&amp;gt; ['sneosikov', 'volyk'], то правило сработает на клиентов ФОП-а Снеосиков и на клиентов ФОП-а Волик&lt;br /&gt;
&lt;br /&gt;
==Расщепление==&lt;br /&gt;
&lt;br /&gt;
Управляется параметром percent, который указывает на процент от суммы платежа. В каждом правиле есть параметр params, который описывает ответ платежной системе. Внутри этого параметра несколько блоков {...}, в котором указывается процент, а также параметры ФОП (или не ФОП). Если вам необходимо перераспределять финансы в соотношении 40% и 60%, то это будет выглядеть примерно так:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rules =&amp;gt; [&lt;br /&gt;
    {           &lt;br /&gt;
        field_name  =&amp;gt; '_fop',&lt;br /&gt;
        field_value =&amp;gt; ['sneosikov'],&lt;br /&gt;
        params  =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 40,&lt;br /&gt;
                companyCode =&amp;gt; '111111',&lt;br /&gt;
                serviceCode =&amp;gt; '222222',&lt;br /&gt;
                name =&amp;gt; 'Доступ до мережі Інтернет',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                percent  =&amp;gt; 60,&lt;br /&gt;
                companyCode =&amp;gt; '888888',&lt;br /&gt;
                serviceCode =&amp;gt; '999999',&lt;br /&gt;
                name =&amp;gt; 'Послуга техпідтримки',&lt;br /&gt;
                companyInfo =&amp;gt; {&lt;br /&gt;
                    ...,&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    ...&lt;br /&gt;
],&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T06:56:25Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Модули */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Принять решение переходить ли на NoDeny]]&lt;br /&gt;
* [[Краткая информация]]&lt;br /&gt;
** [http://nodeny.com.ua/ Официальный сайт]&lt;br /&gt;
** [http://forum.nodeny.com.ua/ Форум]&lt;br /&gt;
* [[Установка NoDeny]]&lt;br /&gt;
* [[NoDeny Next]]&lt;br /&gt;
* FAQ&lt;br /&gt;
** [[Узнать версию NoDeny]]&lt;br /&gt;
** [[Установка модулей]]&lt;br /&gt;
** [[Debug режим]]&lt;br /&gt;
** [[Безопасность]]&lt;br /&gt;
** [[Ip абонента|Выдача ip абоненту]]&lt;br /&gt;
** Услуги&lt;br /&gt;
*** [[Заморозка услуг|Заморозка]]&lt;br /&gt;
*** [[Разрешить подключать услугу только один раз|Подключить только один раз]]&lt;br /&gt;
** [[Ядро]]&lt;br /&gt;
*** [[Запуск модулей ядра|Запуск модулей]]&lt;br /&gt;
** [[Зависимые выпадающие списки]]&lt;br /&gt;
** [[Уникальные поля учетной записи]]&lt;br /&gt;
** [[Пуш-уведомления]]&lt;br /&gt;
** [[Трафик в другой БД]]&lt;br /&gt;
** [[Push уведомления]]&lt;br /&gt;
** [[Теги в услугах]]&lt;br /&gt;
* [[Сервер доступа]]&lt;br /&gt;
** FreeBSD / Linux&lt;br /&gt;
*** [[Dhcp|DHCP]]&lt;br /&gt;
**** [[Dhcp без Radius]]&lt;br /&gt;
**** [[Dhcp+Radius|Dhcp + Radius 2]]&lt;br /&gt;
**** [[Dhcp + Radius 3|Dhcp + Radius 2 (FreeBSD)]]&lt;br /&gt;
*****[[Dhcp запускается на FreeBSD]]&lt;br /&gt;
**** [[Dhcp + Radius 3 (Linux)]]&lt;br /&gt;
**** [[dhcp-конфиг с помощью make config|Автогенерация конфига]]&lt;br /&gt;
*** [[PPPoE|PPPoE  (Freeradius 2)]]&lt;br /&gt;
*** [[Pppoe (mpd5 + freeradius 3)|PPPoE  (Freeradius 3)]]&lt;br /&gt;
** [[Микротик]]&lt;br /&gt;
*** DHCP&lt;br /&gt;
**** [[mirkotik dhcp|с использованием Radius]]&lt;br /&gt;
**** [[Конфиг для Mikrotik с помощью make config|без использования Radius]]&lt;br /&gt;
*** [[Микротик#Заглушка|Заглушка]]&lt;br /&gt;
*** [[Pppoe|PPPoE]]&lt;br /&gt;
* [[Подключения]]&lt;br /&gt;
&lt;br /&gt;
==[[Модули]]==&lt;br /&gt;
* Авторизация в личном кабинете&lt;br /&gt;
** [[Авторизация через Google|через Google]]&lt;br /&gt;
** [[Авторизация через Facebook|через Facebook]]&lt;br /&gt;
** [[Авторизация через Telegram|через Telegram]]&lt;br /&gt;
* Услуги&lt;br /&gt;
** [[Честные услуги]]&lt;br /&gt;
** [[Длинные услуги]]&lt;br /&gt;
** [[Короткие услуги]]&lt;br /&gt;
** [[Модуль приостановки услуг|Приостановка услуг]]&lt;br /&gt;
** [[Service_rules|Правила смены услуг]]&lt;br /&gt;
** [[Снятие за меньший тариф]]&lt;br /&gt;
** [[Массовое изменение «следующей» услуги]]&lt;br /&gt;
** [[Услуга с настраиваемым периодом]]&lt;br /&gt;
** [[Короткий доступ]]&lt;br /&gt;
** [[Цена из допполя]]&lt;br /&gt;
** [[Услуги по формуле]]&lt;br /&gt;
** [[Модуль группировки списаний|Группировка списаний]]&lt;br /&gt;
* IP&lt;br /&gt;
** [[Привязка ip к login]]&lt;br /&gt;
** [[Модуль Place ip|Place ip]]&lt;br /&gt;
* [[Sms]]&lt;br /&gt;
**[[TurboSms]]&lt;br /&gt;
**[[TurboSms viber/sms]]&lt;br /&gt;
**[[LifeSms]]&lt;br /&gt;
**[[Sms о пополнении счета]]&lt;br /&gt;
**[[Sms с балансами всем абонентам]]&lt;br /&gt;
* [[Модуль DHCP|DHCP]]&lt;br /&gt;
* [[Карта]]&lt;br /&gt;
** [[Google карти|Google]]&lt;br /&gt;
** [[Leaflet карти|Leaflet]]&lt;br /&gt;
* [[Пингсервер]]&lt;br /&gt;
* [[Редактор ВОЛС]]&lt;br /&gt;
* [[Заглушка]]&lt;br /&gt;
* [[Модуль &amp;quot;Акция&amp;quot;|Акция]]&lt;br /&gt;
* [[Модуль &amp;quot;Бонусный счет&amp;quot;|Бонусный счет]]&lt;br /&gt;
* [[Модуль &amp;quot;Поделись балансом&amp;quot;|Поделись балансом]]&lt;br /&gt;
* [[Модуль лояльности и &amp;quot;Приведи друга&amp;quot;]]&lt;br /&gt;
* [[Модуль лояльности 2]]&lt;br /&gt;
* [[Родительский контроль]]&lt;br /&gt;
* [[Карточки пополнения счета]]&lt;br /&gt;
* [[Кредит. Версия 2]]&lt;br /&gt;
* [[Платежи из файла]]&lt;br /&gt;
* [[Binotel телефония]]&lt;br /&gt;
* [[COA|COA (old version)]]&lt;br /&gt;
* [[COA new version|COA]]&lt;br /&gt;
* [[WebCoa]]&lt;br /&gt;
* [[Netflow]]&lt;br /&gt;
* [[Make config]]&lt;br /&gt;
* [[Pingserver]]&lt;br /&gt;
* [[Radius атрибуты]]&lt;br /&gt;
* [[Snmp]]&lt;br /&gt;
**[[dhcp-конфиг с помощью make config|Пример для dhcp-сервера]]&lt;br /&gt;
**[[Конфиг для Mikrotik с помощью make config|Пример для Mikrotik]]&lt;br /&gt;
* [[Ограничения доступа персонала по времени]]&lt;br /&gt;
* [[Ограничение доступа персонала по ip]]&lt;br /&gt;
* [[Блокировка ненастроенных учеток]]&lt;br /&gt;
* [[Допполе «линк»]]&lt;br /&gt;
* [[Тикетная система]]&lt;br /&gt;
**[[Настройка тикетной системы|Настройка]]&lt;br /&gt;
** [[Сообщения в Telegram]]&lt;br /&gt;
* Видеосервисы&lt;br /&gt;
** [[OmegaTV|Omega TV]]&lt;br /&gt;
** [[Omega TV. Оптимизация API]]&lt;br /&gt;
** [[TrinityTV|Trinity TV]]&lt;br /&gt;
** [[Trinity-TV. Оптимизация API|Trinity TV. Оптимизация API]]&lt;br /&gt;
** [[Megogo]]&lt;br /&gt;
** [[Megogo. Оптимизация API]]&lt;br /&gt;
** [[Iptvportal]]&lt;br /&gt;
* Платежные системы&lt;br /&gt;
** [[Терминалы Приватбанка]]&lt;br /&gt;
** [[Терминалы Приватбанка, версия 2]]&lt;br /&gt;
** [[Liqpay]]&lt;br /&gt;
** [[Liqpay 3]]&lt;br /&gt;
** [[24nonStop]]&lt;br /&gt;
** [[City24]]&lt;br /&gt;
** [[CityPay]]&lt;br /&gt;
** [[CloudPayments]]&lt;br /&gt;
** [[Easypay]]&lt;br /&gt;
** [[E-pay]]&lt;br /&gt;
** [[E-ПЛАТЕЖКА]]&lt;br /&gt;
** [[Fondy]]&lt;br /&gt;
** [[Globalmoney]]&lt;br /&gt;
** [[IBox]]&lt;br /&gt;
** [[Monobank]]&lt;br /&gt;
** [[Monobank терминалы]]&lt;br /&gt;
** [[Paymaster]]&lt;br /&gt;
** [[Platezhka]]&lt;br /&gt;
** [[Platon]]&lt;br /&gt;
** [[Portmone]]&lt;br /&gt;
** [[Qiwi]]&lt;br /&gt;
** [[Tascombank]]&lt;br /&gt;
** [[Ukrpays]]&lt;br /&gt;
** [[Walletone]]&lt;br /&gt;
&lt;br /&gt;
==Иное==&lt;br /&gt;
&lt;br /&gt;
* [[Фичи на заметку]]&lt;br /&gt;
* [[Подсчет трафика]]&lt;br /&gt;
** [[Модуль ядра ses_traf]]&lt;br /&gt;
* [[Интерфейс контроля для гос.органов]]&lt;br /&gt;
* [[Дополнительные возможности]]&lt;br /&gt;
** [[Гостевой режим]]&lt;br /&gt;
** Личный кабинет&lt;br /&gt;
*** [[Краткая иформация о кабинете абонента|Краткая иформация]]&lt;br /&gt;
*** [[Локализация и пиктограммы у пунктов меню]]&lt;br /&gt;
*** [[Настройка меню кабинета абонента|Разное меню для разных групп]]&lt;br /&gt;
*** [[Дизайн личного кабинета]]&lt;br /&gt;
**** [[Дизайн страницы оплаты]]&lt;br /&gt;
*** [[Переменные шаблона личного кабинета]]&lt;br /&gt;
** [[Шаблоны для экспорта платежей]]&lt;br /&gt;
** [[Бланк настроек]]&lt;br /&gt;
** Разработчикам&lt;br /&gt;
*** [[Таблицы базы данных]]&lt;br /&gt;
*** [[Шаблонизатор]]&lt;br /&gt;
*** [[Программирование]]&lt;br /&gt;
**** [[Рисуем графики]]&lt;br /&gt;
*** [[Патчинг файлов]]&lt;br /&gt;
*** [[Разработчикам: заморозка услуг]]&lt;br /&gt;
* [[Записки админа]]&lt;br /&gt;
* [http://app.nodeny-plus.com.ua/docs/index.html Старая документация]&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-07-06T06:51:10Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Принять решение переходить ли на NoDeny]]&lt;br /&gt;
* [[Краткая информация]]&lt;br /&gt;
** [http://nodeny.com.ua/ Официальный сайт]&lt;br /&gt;
** [http://forum.nodeny.com.ua/ Форум]&lt;br /&gt;
* [[Установка NoDeny]]&lt;br /&gt;
* [[NoDeny Next]]&lt;br /&gt;
* FAQ&lt;br /&gt;
** [[Узнать версию NoDeny]]&lt;br /&gt;
** [[Установка модулей]]&lt;br /&gt;
** [[Debug режим]]&lt;br /&gt;
** [[Безопасность]]&lt;br /&gt;
** [[Ip абонента|Выдача ip абоненту]]&lt;br /&gt;
** Услуги&lt;br /&gt;
*** [[Заморозка услуг|Заморозка]]&lt;br /&gt;
*** [[Разрешить подключать услугу только один раз|Подключить только один раз]]&lt;br /&gt;
** [[Ядро]]&lt;br /&gt;
*** [[Запуск модулей ядра|Запуск модулей]]&lt;br /&gt;
** [[Зависимые выпадающие списки]]&lt;br /&gt;
** [[Уникальные поля учетной записи]]&lt;br /&gt;
** [[Пуш-уведомления]]&lt;br /&gt;
** [[Трафик в другой БД]]&lt;br /&gt;
** [[Push уведомления]]&lt;br /&gt;
** [[Теги в услугах]]&lt;br /&gt;
* [[Сервер доступа]]&lt;br /&gt;
** FreeBSD / Linux&lt;br /&gt;
*** [[Dhcp|DHCP]]&lt;br /&gt;
**** [[Dhcp без Radius]]&lt;br /&gt;
**** [[Dhcp+Radius|Dhcp + Radius 2]]&lt;br /&gt;
**** [[Dhcp + Radius 3|Dhcp + Radius 2 (FreeBSD)]]&lt;br /&gt;
*****[[Dhcp запускается на FreeBSD]]&lt;br /&gt;
**** [[Dhcp + Radius 3 (Linux)]]&lt;br /&gt;
**** [[dhcp-конфиг с помощью make config|Автогенерация конфига]]&lt;br /&gt;
*** [[PPPoE|PPPoE  (Freeradius 2)]]&lt;br /&gt;
*** [[Pppoe (mpd5 + freeradius 3)|PPPoE  (Freeradius 3)]]&lt;br /&gt;
** [[Микротик]]&lt;br /&gt;
*** DHCP&lt;br /&gt;
**** [[mirkotik dhcp|с использованием Radius]]&lt;br /&gt;
**** [[Конфиг для Mikrotik с помощью make config|без использования Radius]]&lt;br /&gt;
*** [[Микротик#Заглушка|Заглушка]]&lt;br /&gt;
*** [[Pppoe|PPPoE]]&lt;br /&gt;
* [[Подключения]]&lt;br /&gt;
&lt;br /&gt;
==[[Модули]]==&lt;br /&gt;
* Авторизация в личном кабинете&lt;br /&gt;
** [[Авторизация через Google|через Google]]&lt;br /&gt;
** [[Авторизация через Facebook|через Facebook]]&lt;br /&gt;
** [[Авторизация через Telegram|через Telegram]]&lt;br /&gt;
* Услуги&lt;br /&gt;
** [[Честные услуги]]&lt;br /&gt;
** [[Длинные услуги]]&lt;br /&gt;
** [[Короткие услуги]]&lt;br /&gt;
** [[Модуль приостановки услуг|Приостановка услуг]]&lt;br /&gt;
** [[Service_rules|Правила смены услуг]]&lt;br /&gt;
** [[Снятие за меньший тариф]]&lt;br /&gt;
** [[Массовое изменение «следующей» услуги]]&lt;br /&gt;
** [[Услуга с настраиваемым периодом]]&lt;br /&gt;
** [[Короткий доступ]]&lt;br /&gt;
** [[Цена из допполя]]&lt;br /&gt;
** [[Услуги по формуле]]&lt;br /&gt;
** [[Модуль группировки списаний|Группировка списаний]]&lt;br /&gt;
* IP&lt;br /&gt;
** [[Привязка ip к login]]&lt;br /&gt;
** [[Модуль Place ip|Place ip]]&lt;br /&gt;
* [[Sms]]&lt;br /&gt;
**[[TurboSms]]&lt;br /&gt;
**[[TurboSms viber/sms]]&lt;br /&gt;
**[[LifeSms]]&lt;br /&gt;
**[[Sms о пополнении счета]]&lt;br /&gt;
**[[Sms с балансами всем абонентам]]&lt;br /&gt;
* [[Модуль DHCP|DHCP]]&lt;br /&gt;
* [[Карта]]&lt;br /&gt;
** [[Google карти|Google]]&lt;br /&gt;
** [[Leaflet карти|Leaflet]]&lt;br /&gt;
* [[Пингсервер]]&lt;br /&gt;
* [[Редактор ВОЛС]]&lt;br /&gt;
* [[Заглушка]]&lt;br /&gt;
* [[Модуль &amp;quot;Акция&amp;quot;|Акция]]&lt;br /&gt;
* [[Модуль &amp;quot;Бонусный счет&amp;quot;|Бонусный счет]]&lt;br /&gt;
* [[Модуль &amp;quot;Поделись балансом&amp;quot;|Поделись балансом]]&lt;br /&gt;
* [[Модуль лояльности и &amp;quot;Приведи друга&amp;quot;]]&lt;br /&gt;
* [[Модуль лояльности 2]]&lt;br /&gt;
* [[Родительский контроль]]&lt;br /&gt;
* [[Карточки пополнения счета]]&lt;br /&gt;
* [[Кредит. Версия 2]]&lt;br /&gt;
* [[Платежи из файла]]&lt;br /&gt;
* [[Binotel телефония]]&lt;br /&gt;
* [[COA|COA (old version)]]&lt;br /&gt;
* [[COA new version|COA]]&lt;br /&gt;
* [[WebCoa]]&lt;br /&gt;
* [[Netflow]]&lt;br /&gt;
* [[Make config]]&lt;br /&gt;
* [[Pingserver]]&lt;br /&gt;
* [[Radius атрибуты]]&lt;br /&gt;
* [[Snmp]]&lt;br /&gt;
**[[dhcp-конфиг с помощью make config|Пример для dhcp-сервера]]&lt;br /&gt;
**[[Конфиг для Mikrotik с помощью make config|Пример для Mikrotik]]&lt;br /&gt;
* [[Ограничения доступа персонала по времени]]&lt;br /&gt;
* [[Ограничение доступа персонала по ip]]&lt;br /&gt;
* [[Блокировка ненастроенных учеток]]&lt;br /&gt;
* [[Допполе «линк»]]&lt;br /&gt;
* [[Тикетная система]]&lt;br /&gt;
**[[Настройка тикетной системы|Настройка]]&lt;br /&gt;
** [[Сообщения в Telegram]]&lt;br /&gt;
* Видеосервисы&lt;br /&gt;
** [[OmegaTV|Omega TV]]&lt;br /&gt;
** [[Omega TV. Оптимизация API]]&lt;br /&gt;
** [[TrinityTV|Trinity TV]]&lt;br /&gt;
** [[Trinity-TV. Оптимизация API|Trinity TV. Оптимизация API]]&lt;br /&gt;
** [[Megogo]]&lt;br /&gt;
** [[Megogo. Оптимизация API]]&lt;br /&gt;
** [[Iptvportal]]&lt;br /&gt;
* Платежные системы&lt;br /&gt;
** [[Терминалы Приватбанка]]&lt;br /&gt;
** [[Терминалы Приватбанка, версия 2]]&lt;br /&gt;
** [[Liqpay]]&lt;br /&gt;
** [[Liqpay 3]]&lt;br /&gt;
** [[24nonStop]]&lt;br /&gt;
** [[City24]]&lt;br /&gt;
** [[CityPay]]&lt;br /&gt;
** [[CloudPayments]]&lt;br /&gt;
** [[Easypay]]&lt;br /&gt;
** [[E-pay]]&lt;br /&gt;
** [[E-ПЛАТЕЖКА]]&lt;br /&gt;
** [[Fondy]]&lt;br /&gt;
** [[Globalmoney]]&lt;br /&gt;
** [[IBox]]&lt;br /&gt;
** [[Monobank]]&lt;br /&gt;
** [[Monobank термінали]]&lt;br /&gt;
** [[Paymaster]]&lt;br /&gt;
** [[Platezhka]]&lt;br /&gt;
** [[Platon]]&lt;br /&gt;
** [[Portmone]]&lt;br /&gt;
** [[Qiwi]]&lt;br /&gt;
** [[Tascombank]]&lt;br /&gt;
** [[Ukrpays]]&lt;br /&gt;
** [[Walletone]]&lt;br /&gt;
&lt;br /&gt;
==Иное==&lt;br /&gt;
&lt;br /&gt;
* [[Фичи на заметку]]&lt;br /&gt;
* [[Подсчет трафика]]&lt;br /&gt;
** [[Модуль ядра ses_traf]]&lt;br /&gt;
* [[Интерфейс контроля для гос.органов]]&lt;br /&gt;
* [[Дополнительные возможности]]&lt;br /&gt;
** [[Гостевой режим]]&lt;br /&gt;
** Личный кабинет&lt;br /&gt;
*** [[Краткая иформация о кабинете абонента|Краткая иформация]]&lt;br /&gt;
*** [[Локализация и пиктограммы у пунктов меню]]&lt;br /&gt;
*** [[Настройка меню кабинета абонента|Разное меню для разных групп]]&lt;br /&gt;
*** [[Дизайн личного кабинета]]&lt;br /&gt;
**** [[Дизайн страницы оплаты]]&lt;br /&gt;
*** [[Переменные шаблона личного кабинета]]&lt;br /&gt;
** [[Шаблоны для экспорта платежей]]&lt;br /&gt;
** [[Бланк настроек]]&lt;br /&gt;
** Разработчикам&lt;br /&gt;
*** [[Таблицы базы данных]]&lt;br /&gt;
*** [[Шаблонизатор]]&lt;br /&gt;
*** [[Программирование]]&lt;br /&gt;
**** [[Рисуем графики]]&lt;br /&gt;
*** [[Патчинг файлов]]&lt;br /&gt;
*** [[Разработчикам: заморозка услуг]]&lt;br /&gt;
* [[Записки админа]]&lt;br /&gt;
* [http://app.nodeny-plus.com.ua/docs/index.html Старая документация]&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:49:10Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в { {...} } можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При тестировании пополнения от имени абонента можете включить debug-режим и увидеть как идет обработка правил&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:48:19Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в { {...} } можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При тестирование пополнения от имени абонента можете включить debug-режим и увидеть как идет обработка правил&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:48:07Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в { {...} } можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При тестирование пополнения от имени абонента можете включить debug-режим и увидеть как идет обработка правил&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:46:34Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в { {...} } можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:44:59Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в { {...} } можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date   : дата договора (timestamp)&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.limit_balance   : граница отключения&lt;br /&gt;
user.block_if_limit  : отключать ли запись при достижении границы отключения&lt;br /&gt;
user.cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа&lt;br /&gt;
user.cstate_time     : время изменения поля cstate (timestamp)&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.lstate          : нужна авторизация/всегда онлайн&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.traf            : суммарный трафик&lt;br /&gt;
user.traf_in         : суммарный трафик к клиенту&lt;br /&gt;
user.traf_out        : суммарный трафик от клиента&lt;br /&gt;
user.traf1           : трафик в байтах направления 1&lt;br /&gt;
...&lt;br /&gt;
user.traf4           : трафик в байтах направления 4&lt;br /&gt;
user.in1             : входящий трафик направления 1&lt;br /&gt;
user.out1            : исходящий трафик направления 1&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
user.services        : подключенные услуги&lt;br /&gt;
user.ips             : ip адреса&lt;br /&gt;
user.pays            : платежи&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-13T08:37:14Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;br /&gt;
&lt;br /&gt;
В поле description в {{...}} можно указывать данные клиента:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
user.id              : id пользователя&lt;br /&gt;
user.name            : логин&lt;br /&gt;
user.fio             : ФИО&lt;br /&gt;
user.ppc             : платежный код&lt;br /&gt;
user.grp             : номер группы клиента&lt;br /&gt;
user.grp_name        : имя группы&lt;br /&gt;
user.state           : on - доступ открыт, off - закрыт&lt;br /&gt;
user.state_off       : установлен если state равен off&lt;br /&gt;
user.contract        : договор&lt;br /&gt;
user.contract_date   : дата договора (timestamp)&lt;br /&gt;
user.contract_date_as_text : дата договора в виде dd.mm.yyyy&lt;br /&gt;
user.balance         : баланс&lt;br /&gt;
user.limit_balance   : граница отключения&lt;br /&gt;
user.block_if_limit  : отключать ли запись при достижении границы отключения&lt;br /&gt;
user.cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа&lt;br /&gt;
user.cstate_time     : время изменения поля cstate (timestamp)&lt;br /&gt;
user.comment         : комментарий&lt;br /&gt;
user.lstate          : нужна авторизация/всегда онлайн&lt;br /&gt;
user.discount        : скидка&lt;br /&gt;
user.traf            : суммарный трафик&lt;br /&gt;
user.traf_in         : суммарный трафик к клиенту&lt;br /&gt;
user.traf_out        : суммарный трафик от клиента&lt;br /&gt;
user.traf1           : трафик в байтах направления 1&lt;br /&gt;
...&lt;br /&gt;
user.traf4           : трафик в байтах направления 4&lt;br /&gt;
user.in1             : входящий трафик направления 1&lt;br /&gt;
user.out1            : исходящий трафик направления 1&lt;br /&gt;
user.recommended_pay : рекомендованная сумма платежа&lt;br /&gt;
user.full       : блок информации об абоненте для администратора&lt;br /&gt;
user.dopdata         : дополнительные данные&lt;br /&gt;
user.services        : подключенные услуги&lt;br /&gt;
user.ips             : ip адреса&lt;br /&gt;
user.pays            : платежи&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T17:46:34Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T17:45:54Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательный)&lt;br /&gt;
* field_value (необязательный)&lt;br /&gt;
* params (обязательный) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если правило совпадает - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T17:44:32Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если правило совпадает - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T17:43:46Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Приведем виртуальный пример для демонстрации возможностей:&lt;br /&gt;
&lt;br /&gt;
Если группа клиента 1 или 5 или 10, то распределить платеж между мерчантами М1, M2, M3 в соотношении 20%-30%-50%&lt;br /&gt;
Если группа иная, но установлено поле ФОП, то разпределить платеж между мерчантами M2 и M4 в соотношении 50%-50%&lt;br /&gt;
Если не ФОП и при этом группа 7, то все финансы перечислить на M5&lt;br /&gt;
Если не ФОП и при этом группа 8, то все финансы перечислить на M6&lt;br /&gt;
Всех остальных делить между M5 и M6 в соотношении 10%-90%&lt;br /&gt;
&lt;br /&gt;
Правила задаются в виде JSON: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_district&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;obolon&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правило - это блок {...} в котором находятся 3 параметра:&lt;br /&gt;
* field_name (необязательное)&lt;br /&gt;
* field_value (необязательное)&lt;br /&gt;
* params (обязательное) - параметры расщепления&lt;br /&gt;
&lt;br /&gt;
Правила проверяются сверху вниз, и если правило совпадает - модуль формирует правила расщепления и прекращает обработку правил. &lt;br /&gt;
&lt;br /&gt;
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456.&lt;br /&gt;
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002.&lt;br /&gt;
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T17:30:59Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет для {{user.fio}}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_ip_tag&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;nas21&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет ({{user.ppc}})&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T16:32:43Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_ip_tag&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;nas21&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T16:31:33Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Правила расщепления */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_ip_tag&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;nas21&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Portmone</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-06-12T16:30:30Z</updated>

		<summary type="html">&lt;p&gt;Sv: Створена сторінка: === Версия 3 ===  ==Правила расщепления==  &amp;lt;pre&amp;gt; [     {         &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,         &amp;quot;field_value&amp;quot;: [1, 2, 13],         &amp;quot;params&amp;quot; =&amp;gt; [             {                 &amp;quot;percent&amp;quot;: 100,                 &amp;quot;payee_id&amp;quot;: 123456,                 &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,             }         ]     },     {         &amp;quot;field_name&amp;quot;: &amp;quot;_ip_tag&amp;quot;,         &amp;quot;field_value&amp;quot;: [&amp;quot;nas21&amp;quot;],         &amp;quot;params&amp;quot;: [...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Версия 3 ===&lt;br /&gt;
&lt;br /&gt;
==Правила расщепления==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;grp&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [1, 2, 13],&lt;br /&gt;
        &amp;quot;params&amp;quot; =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 123456,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;field_name&amp;quot;: &amp;quot;_ip_tag&amp;quot;,&lt;br /&gt;
        &amp;quot;field_value&amp;quot;: [&amp;quot;nas21&amp;quot;],&lt;br /&gt;
        &amp;quot;params&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 10,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1000,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 20,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1001,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга техпідтримки&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 70,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1002,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Послуга відпочинку&amp;quot;,&lt;br /&gt;
            },&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;params&amp;quot; =&amp;gt; [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;percent&amp;quot;: 100,&lt;br /&gt;
                &amp;quot;payee_id&amp;quot;: 1005,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;Доступ до мережі Інтернет&amp;quot;,&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Редактор ВОЛС</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-04-10T06:50:50Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Настройка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Описание=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Редактор ВОЛС позволяет довольно просто создавать сложные и масштабные оптические схемы.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:Fibers example1.png|657px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример пути от точки до точки==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example3.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example2.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Необходимо в привилегиях администратора поставить галку «Доступ к разделу ВОЛС» и тогда в верхнем меню появится ссылка «ВОЛС».&lt;br /&gt;
&lt;br /&gt;
У каждой схемы есть параметр «доступ», который может принимать одно из трех значений:&lt;br /&gt;
* полный - любой администратор с доступом к ВОЛС может внести любые изменения в схему&lt;br /&gt;
* только просмотр - любой администратор с доступом к ВОЛС может только просматривать схему. Изменять ее может только администратор, создавший схему&lt;br /&gt;
* нет - только автор, создавший схему, имеет доступ и на просмотр и на изменение&lt;br /&gt;
&lt;br /&gt;
Таким образом, у владельца схемы доступ есть всегда, а для других доступ регулируется параметром схемы.&lt;br /&gt;
&lt;br /&gt;
В общих настройках ВОЛС есть параметр:&lt;br /&gt;
&lt;br /&gt;
* Да - общие схемы будут видны всем, Нет - доступ будет тем, у кого будет ссылка&lt;br /&gt;
&lt;br /&gt;
Этот параметр позволяет видеть чужие схемы в списке «другие схемы». Параметр не влияет на доступ к схеме! Доступ указывается конкретно в схеме. Если этот параметр установлен в «нет», то админ не увидит чужие схемы, однако может получить к ним доступ если url этой схемы ему передаст автор либо иной админ. Естественно, если параметр доступа в схеме либо полный либо только просмотр. &lt;br /&gt;
&lt;br /&gt;
В настройках конкретной схемы также есть параметр «В избранном» - доступен только автору схемы. Если галка не стоит, то схема будет видна не в личном списке схем, а в списке «другие схемы» как будто это чужая схема. Еще раз подчеркиваем: на доступ к схеме влияет не список, где она находится, а параметры самой схемы&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Как создавать схемы=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Практически все действия осуществляются двойным щелчком мыши (или правой кнопкой). Изредка используется один целчок, что будет описано ниже.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если дважды щелкнуть по свободному месту схемы, а в начале она будет вся свободная т.к. вы еще ничего не создали, появится главное меню. Здесь вы можете выбрать что хотите поместить на схему. Например патчпанель. Обратите внимание, что зачастую деление на муфту/бокс/сплиттер условное т.к, например, сам сплиттер может выполнять функцию и сплиттера и муфты. Поэтому вы можете в любой момент поменять обозначение (аватар) объекта на иной. Или добавить пайку/коннектор/сплиттер и т.д.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Перемещать объекты можно как обычно перемещая мышь зажав ее левую кнопку. Таким образом можно перемещать как объекты в целом (бокс/муфту...) так и внутренние элементы (коннекторы/пайку...). Можно перемещать несколько объектов, для этого их сначала надо выбрать зажав shift на клавиатуре.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если сделаете что-либо не так, например, случайно зацепите не тот элемент либо после серии перемещений вам покажется, что раннее расположение было лучше - в любой момент можете откатиться на любое количество шагов назад с помощью ctrl+z. Также доступна &amp;quot;отмена возвратов&amp;quot;, т.е перемещение по истории вперед.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В главном меню также присутствует кнопка включения режима создания соединений. Выход из этого режима по щелчку в свободной области схемы. Сервис контролирует корректность создания соединений. Некоторые правила: волокно не может заходить сразу в порт свича, оно должно &amp;quot;подпаиваться&amp;quot; к коннектору (бокса/патчпанели/сплиттера). К коннектору подпаивается только одно волокно. В элементе типа &amp;quot;пайка&amp;quot; может сходиться не больше двух волокон.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Оптический кабель можно проложить с любым количеством изгибов, т.е. удобно обойти препятствия и проложить красиво. Изгибы создаются двойным щелчком по кабелю. Двойным щелчком они и удаляются (при выборе соответсвующего пункта меню). Зажатой левой кнопкой мыши изгибы можно перемещать. Если вы хотите переместить не один изгиб, а кабель в целом, вам надо один раз щелкнуть по изгибу - в этом случае появится не меню, а круг, перемещая который будет перемещаться целый кабель&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Одинарный щелчок по крайним изгибам (в места входа волокон в кабель) имеет иное назначение - перемещение этой точки относительно волокон. Для перфекционистов доступны горизонтальные и вертикальные выравнивания фрагментов кабеля. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Операции с волокнами==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Очевидные:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* создавать&lt;br /&gt;
* удалять&lt;br /&gt;
* менять цвет&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
По умолчанию волокна раполагаются друг от друга на расстоянии коннекторов. Но зачастую требуется переместить коннекторые в иную позицию и возникает желание переместить отдельное или несколько волокон. Вы это можете сделать зажав левую кнопку мыши. В некоторых ситуациях у вас будет запрошено что именно вы хотите сделать: переместить волокно или изменить порядок волокон. Часто вам понадобится именно изменять порядок, потому что не всегда волокна паяются в порядке нумерации конекторов на раме.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Редактор ВОЛС</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-04-09T14:24:27Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Настройка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Описание=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Редактор ВОЛС позволяет довольно просто создавать сложные и масштабные оптические схемы.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:Fibers example1.png|657px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример пути от точки до точки==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example3.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example2.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Необходимо в привилегиях администратора поставить галку «Доступ к разделу ВОЛС» и тогда в верхнем меню появится ссылка «ВОЛС».&lt;br /&gt;
&lt;br /&gt;
У каждой схемы есть параметр «доступ», который может принимать одно из трех значений:&lt;br /&gt;
* полный - любой администратор с доступом к ВОЛС может внести любые изменения в схему&lt;br /&gt;
* только просмотр - любой администратор с доступом к ВОЛС может только просматривать схему. Изменять ее может только администратор, создавший схему&lt;br /&gt;
* нет - только автор, создавший схему, имеет доступ и на просмотр и на изменение&lt;br /&gt;
&lt;br /&gt;
В общих настройках ВОЛС есть параметр:&lt;br /&gt;
&lt;br /&gt;
* Да - общие схемы будут видны всем, Нет - доступ будет тем, у кого будет ссылка&lt;br /&gt;
&lt;br /&gt;
Этот параметр позволяет видеть чужие схемы в списке «другие схемы». Параметр не влияет на доступ к схеме! Доступ указывается конкретно в схеме. Если этот параметр установлен в «нет», то админ не увидит чужие схемы, однако может получить к ним доступ если url этой схемы ему передаст автор либо иной админ. Естественно, если параметр доступа в схеме либо полный либо только просмотр. &lt;br /&gt;
&lt;br /&gt;
В настройках конкретной схемы также есть параметр «В избранном» - доступен только автору схемы. Если галка не стоит, то схема будет видна не в личном списке схем, а в списке «другие схемы» как будто это чужая схема. Еще раз подчеркиваем: на доступ к схеме влияет не список, где она находится, а параметры самой схемы&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Как создавать схемы=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Практически все действия осуществляются двойным щелчком мыши (или правой кнопкой). Изредка используется один целчок, что будет описано ниже.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если дважды щелкнуть по свободному месту схемы, а в начале она будет вся свободная т.к. вы еще ничего не создали, появится главное меню. Здесь вы можете выбрать что хотите поместить на схему. Например патчпанель. Обратите внимание, что зачастую деление на муфту/бокс/сплиттер условное т.к, например, сам сплиттер может выполнять функцию и сплиттера и муфты. Поэтому вы можете в любой момент поменять обозначение (аватар) объекта на иной. Или добавить пайку/коннектор/сплиттер и т.д.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Перемещать объекты можно как обычно перемещая мышь зажав ее левую кнопку. Таким образом можно перемещать как объекты в целом (бокс/муфту...) так и внутренние элементы (коннекторы/пайку...). Можно перемещать несколько объектов, для этого их сначала надо выбрать зажав shift на клавиатуре.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если сделаете что-либо не так, например, случайно зацепите не тот элемент либо после серии перемещений вам покажется, что раннее расположение было лучше - в любой момент можете откатиться на любое количество шагов назад с помощью ctrl+z. Также доступна &amp;quot;отмена возвратов&amp;quot;, т.е перемещение по истории вперед.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В главном меню также присутствует кнопка включения режима создания соединений. Выход из этого режима по щелчку в свободной области схемы. Сервис контролирует корректность создания соединений. Некоторые правила: волокно не может заходить сразу в порт свича, оно должно &amp;quot;подпаиваться&amp;quot; к коннектору (бокса/патчпанели/сплиттера). К коннектору подпаивается только одно волокно. В элементе типа &amp;quot;пайка&amp;quot; может сходиться не больше двух волокон.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Оптический кабель можно проложить с любым количеством изгибов, т.е. удобно обойти препятствия и проложить красиво. Изгибы создаются двойным щелчком по кабелю. Двойным щелчком они и удаляются (при выборе соответсвующего пункта меню). Зажатой левой кнопкой мыши изгибы можно перемещать. Если вы хотите переместить не один изгиб, а кабель в целом, вам надо один раз щелкнуть по изгибу - в этом случае появится не меню, а круг, перемещая который будет перемещаться целый кабель&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Одинарный щелчок по крайним изгибам (в места входа волокон в кабель) имеет иное назначение - перемещение этой точки относительно волокон. Для перфекционистов доступны горизонтальные и вертикальные выравнивания фрагментов кабеля. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Операции с волокнами==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Очевидные:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* создавать&lt;br /&gt;
* удалять&lt;br /&gt;
* менять цвет&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
По умолчанию волокна раполагаются друг от друга на расстоянии коннекторов. Но зачастую требуется переместить коннекторые в иную позицию и возникает желание переместить отдельное или несколько волокон. Вы это можете сделать зажав левую кнопку мыши. В некоторых ситуациях у вас будет запрошено что именно вы хотите сделать: переместить волокно или изменить порядок волокон. Часто вам понадобится именно изменять порядок, потому что не всегда волокна паяются в порядке нумерации конекторов на раме.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Редактор ВОЛС</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-04-09T14:23:54Z</updated>

		<summary type="html">&lt;p&gt;Sv: /* Настройка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Описание=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Редактор ВОЛС позволяет довольно просто создавать сложные и масштабные оптические схемы.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:Fibers example1.png|657px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример пути от точки до точки==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example3.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example2.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Необходимо в привилегиях администратора поставить галку «Доступ к разделу ВОЛС» и тогда в верхнем меню появится ссылка «ВОЛС».&lt;br /&gt;
&lt;br /&gt;
У каждой схемы есть параметр «доступ», который может принимать одно из трех значений:&lt;br /&gt;
* полный - любой администратор с доступом к ВОЛС может внести любые изменения в схему&lt;br /&gt;
* только просмотр - любой администратор с доступом к ВОЛС может только просматривать схему. Изменять ее может только администратор, создавший схему&lt;br /&gt;
* нет - только автор, создавший схему, имеет доступ и на просмотр и на изменение&lt;br /&gt;
&lt;br /&gt;
В общих настройках ВОЛС есть параметр:&lt;br /&gt;
&lt;br /&gt;
* Да - общие схемы будут видны всем, Нет - доступ будет тем, у кого будет ссылка&lt;br /&gt;
&lt;br /&gt;
Этот параметр позволяет видеть чужие схемы в списке «другие схемы». Параметр не влияет на доступ к схеме! Доступ указывается конкретно в схеме. Если этот параметр установлен в «нет», то админ не увидит чужие схемы, однако может получить к ним доступ если url этой схемы ему передаст автор либо иной админ. Естественно, если параметр доступа в схеме либо полный либо только просмотр. &lt;br /&gt;
&lt;br /&gt;
В настройках конкретной схемы также есть параметр «В избранном» - доступен только автору схемы. Если галка не стоит, то схема будет видна не в личном списке схем, а в списке «другие схемы» как будто это чужая схема. Еще раз подчеркиваем, что на доступ к схеме влияет не список, где она находится, а параметры самой схемы&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Как создавать схемы=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Практически все действия осуществляются двойным щелчком мыши (или правой кнопкой). Изредка используется один целчок, что будет описано ниже.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если дважды щелкнуть по свободному месту схемы, а в начале она будет вся свободная т.к. вы еще ничего не создали, появится главное меню. Здесь вы можете выбрать что хотите поместить на схему. Например патчпанель. Обратите внимание, что зачастую деление на муфту/бокс/сплиттер условное т.к, например, сам сплиттер может выполнять функцию и сплиттера и муфты. Поэтому вы можете в любой момент поменять обозначение (аватар) объекта на иной. Или добавить пайку/коннектор/сплиттер и т.д.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Перемещать объекты можно как обычно перемещая мышь зажав ее левую кнопку. Таким образом можно перемещать как объекты в целом (бокс/муфту...) так и внутренние элементы (коннекторы/пайку...). Можно перемещать несколько объектов, для этого их сначала надо выбрать зажав shift на клавиатуре.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если сделаете что-либо не так, например, случайно зацепите не тот элемент либо после серии перемещений вам покажется, что раннее расположение было лучше - в любой момент можете откатиться на любое количество шагов назад с помощью ctrl+z. Также доступна &amp;quot;отмена возвратов&amp;quot;, т.е перемещение по истории вперед.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В главном меню также присутствует кнопка включения режима создания соединений. Выход из этого режима по щелчку в свободной области схемы. Сервис контролирует корректность создания соединений. Некоторые правила: волокно не может заходить сразу в порт свича, оно должно &amp;quot;подпаиваться&amp;quot; к коннектору (бокса/патчпанели/сплиттера). К коннектору подпаивается только одно волокно. В элементе типа &amp;quot;пайка&amp;quot; может сходиться не больше двух волокон.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Оптический кабель можно проложить с любым количеством изгибов, т.е. удобно обойти препятствия и проложить красиво. Изгибы создаются двойным щелчком по кабелю. Двойным щелчком они и удаляются (при выборе соответсвующего пункта меню). Зажатой левой кнопкой мыши изгибы можно перемещать. Если вы хотите переместить не один изгиб, а кабель в целом, вам надо один раз щелкнуть по изгибу - в этом случае появится не меню, а круг, перемещая который будет перемещаться целый кабель&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Одинарный щелчок по крайним изгибам (в места входа волокон в кабель) имеет иное назначение - перемещение этой точки относительно волокон. Для перфекционистов доступны горизонтальные и вертикальные выравнивания фрагментов кабеля. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Операции с волокнами==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Очевидные:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* создавать&lt;br /&gt;
* удалять&lt;br /&gt;
* менять цвет&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
По умолчанию волокна раполагаются друг от друга на расстоянии коннекторов. Но зачастую требуется переместить коннекторые в иную позицию и возникает желание переместить отдельное или несколько волокон. Вы это можете сделать зажав левую кнопку мыши. В некоторых ситуациях у вас будет запрошено что именно вы хотите сделать: переместить волокно или изменить порядок волокон. Часто вам понадобится именно изменять порядок, потому что не всегда волокна паяются в порядке нумерации конекторов на раме.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Редактор ВОЛС</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-04-09T14:16:15Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
=Описание=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Редактор ВОЛС позволяет довольно просто создавать сложные и масштабные оптические схемы.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример==&lt;br /&gt;
[[Файл:Fibers example1.png|657px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Пример пути от точки до точки==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example3.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Fibers example2.png|650px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Настройка=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Необходимо в привилегиях администратора поставить галку «Доступ к разделу ВОЛС» и тогда в верхнем меню появится ссылка «ВОЛС».&lt;br /&gt;
&lt;br /&gt;
У каждой схемы есть параметр «доступ», который может принимать одно из трех значений:&lt;br /&gt;
* полный - любой администратор с доступом к ВОЛС может внести любые изменения в схему&lt;br /&gt;
* только просмотр - любой администратор с доступом к ВОЛС может только просматривать схему. Изменять ее может только администратор, создавший схему&lt;br /&gt;
* нет - только автор, создавший схему, имеет доступ и на просмотр и на изменение&lt;br /&gt;
&lt;br /&gt;
В общих настройках ВОЛС есть параметр:&lt;br /&gt;
&lt;br /&gt;
* Да - общие схемы будут видны всем, Нет - доступ будет тем, у кого будет ссылка&lt;br /&gt;
&lt;br /&gt;
Этот параметр позволяет видеть чужие схемы в списке «другие схемы». Параметр не влияет на доступ к схеме! Доступ указывается конкретно в схеме. Если этот параметр установлен в «нет», то админ не увидит чужие схемы, однако может получить к ним доступ если url этой схемы ему передаст автор либо иной админ. Естественно, если параметр доступа в схеме либо полный либо только просмотр. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Как создавать схемы=&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Практически все действия осуществляются двойным щелчком мыши (или правой кнопкой). Изредка используется один целчок, что будет описано ниже.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если дважды щелкнуть по свободному месту схемы, а в начале она будет вся свободная т.к. вы еще ничего не создали, появится главное меню. Здесь вы можете выбрать что хотите поместить на схему. Например патчпанель. Обратите внимание, что зачастую деление на муфту/бокс/сплиттер условное т.к, например, сам сплиттер может выполнять функцию и сплиттера и муфты. Поэтому вы можете в любой момент поменять обозначение (аватар) объекта на иной. Или добавить пайку/коннектор/сплиттер и т.д.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Перемещать объекты можно как обычно перемещая мышь зажав ее левую кнопку. Таким образом можно перемещать как объекты в целом (бокс/муфту...) так и внутренние элементы (коннекторы/пайку...). Можно перемещать несколько объектов, для этого их сначала надо выбрать зажав shift на клавиатуре.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Если сделаете что-либо не так, например, случайно зацепите не тот элемент либо после серии перемещений вам покажется, что раннее расположение было лучше - в любой момент можете откатиться на любое количество шагов назад с помощью ctrl+z. Также доступна &amp;quot;отмена возвратов&amp;quot;, т.е перемещение по истории вперед.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
В главном меню также присутствует кнопка включения режима создания соединений. Выход из этого режима по щелчку в свободной области схемы. Сервис контролирует корректность создания соединений. Некоторые правила: волокно не может заходить сразу в порт свича, оно должно &amp;quot;подпаиваться&amp;quot; к коннектору (бокса/патчпанели/сплиттера). К коннектору подпаивается только одно волокно. В элементе типа &amp;quot;пайка&amp;quot; может сходиться не больше двух волокон.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Оптический кабель можно проложить с любым количеством изгибов, т.е. удобно обойти препятствия и проложить красиво. Изгибы создаются двойным щелчком по кабелю. Двойным щелчком они и удаляются (при выборе соответсвующего пункта меню). Зажатой левой кнопкой мыши изгибы можно перемещать. Если вы хотите переместить не один изгиб, а кабель в целом, вам надо один раз щелкнуть по изгибу - в этом случае появится не меню, а круг, перемещая который будет перемещаться целый кабель&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Одинарный щелчок по крайним изгибам (в места входа волокон в кабель) имеет иное назначение - перемещение этой точки относительно волокон. Для перфекционистов доступны горизонтальные и вертикальные выравнивания фрагментов кабеля. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Операции с волокнами==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
Очевидные:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* создавать&lt;br /&gt;
* удалять&lt;br /&gt;
* менять цвет&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style='margin-top: 1.5em'&amp;gt;&lt;br /&gt;
По умолчанию волокна раполагаются друг от друга на расстоянии коннекторов. Но зачастую требуется переместить коннекторые в иную позицию и возникает желание переместить отдельное или несколько волокон. Вы это можете сделать зажав левую кнопку мыши. В некоторых ситуациях у вас будет запрошено что именно вы хотите сделать: переместить волокно или изменить порядок волокон. Часто вам понадобится именно изменять порядок, потому что не всегда волокна паяются в порядке нумерации конекторов на раме.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Модуль опроса. АPI</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-01-14T08:23:01Z</updated>

		<summary type="html">&lt;p&gt;Sv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Список опросов==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&amp;amp;cmd=list' \&lt;br /&gt;
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если в ответе ключ err_cod - ошибка. Иначе в polls - список опросов.&lt;br /&gt;
&lt;br /&gt;
Данные опроса:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id                : id опроса, целое число больше нуля&lt;br /&gt;
title             : заголовок&lt;br /&gt;
description       : описание&lt;br /&gt;
start_date        : дата старта опроса в виде строки&lt;br /&gt;
end_date          : дата завершения опроса в виде строки&lt;br /&gt;
start             : дата старта опроса в виде timestamp&lt;br /&gt;
end               : дата завершения опроса в виде timestamp&lt;br /&gt;
stats_voted_users : количество проголосовавших пользователей&lt;br /&gt;
can_see_results   : 1 - пользователь может видеть результаты голосования, 0 - нет&lt;br /&gt;
can_see_results_before_vote : 1 - может видеть результаты до голосования, 0 - только после&lt;br /&gt;
can_revote        : 1 - может переголосовать, 0 - нет&lt;br /&gt;
can_multi_choice  : 1 - можно голосовать за несколько пунктов, 0 - нет&lt;br /&gt;
can_anonymous     : 1 - можно голосовать анонимно, 0 - нет&lt;br /&gt;
voted             : 1 - голосовал, 0 - нет&lt;br /&gt;
vote_time         : дата голосования в виде строки, '' если не голосовал&lt;br /&gt;
viewed_time       : дата первого просмотра опроса в виде строки, '' если не просматривал еще&lt;br /&gt;
ignore            : пользователь просил не показываеть ему этот опрос&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Если не разрешено просматривать результаты опроса или пользователь не голосовал, то stats_voted_users = -1.&lt;br /&gt;
* ignore - флаг, который указывает на то, что ранее пользователь давал команду не показывать этот опрос. Показывать или нет - на усмотрение.&lt;br /&gt;
* viewed_time установлен, если пользователь вызывал cmd=choices, т.е. видел названия пунктов меню и возможно статистику (если разрешен ее показ).&lt;br /&gt;
* vote_time - дата последнего голосования, если голосовал несколько раз.&lt;br /&gt;
&lt;br /&gt;
==Получить данные опроса==&lt;br /&gt;
&lt;br /&gt;
В параметре poll_id - id опроса в списке polls&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&amp;amp;cmd=choices&amp;amp;poll_id=1' \&lt;br /&gt;
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если в ответе ключ err_cod - ошибка. Иначе в choices - пункты опроса:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id          : id пункта опроса&lt;br /&gt;
title       : пункт опроса&lt;br /&gt;
description : описание&lt;br /&gt;
voted       : 1 - проголосовал за этот пункт&lt;br /&gt;
votes       : количество пользователей проголосовавших за этот пункт&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Если не разрешено просматривать результаты опроса или пользователь не голосовал, то votes = -1.&lt;br /&gt;
&lt;br /&gt;
==Голосование==&lt;br /&gt;
&lt;br /&gt;
В параметре:&lt;br /&gt;
* poll_id - id опроса в списке polls&lt;br /&gt;
* choice - id пункта или список id, разделенных запятыми&lt;br /&gt;
* as_anon - голосовать анонимно (1 - да, 0 - нет)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&amp;amp;cmd=vote&amp;amp;poll_id=1&amp;amp;choice=1,2' \&lt;br /&gt;
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Игнорировать опрос==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&amp;amp;cmd=ignore&amp;amp;poll_id=1' \&lt;br /&gt;
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Не игнорировать опрос==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_poll&amp;amp;cmd=dont_ignore&amp;amp;poll_id=1' \&lt;br /&gt;
    --cookie 'noses=zpP6gc2lJjeYKzskLBK7zA'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Коды ошибок==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
temporary        : ошибка на сервере АPI&lt;br /&gt;
poll_id_required : в параметре poll_id не задан id опроса&lt;br /&gt;
poll_not_found   : опрос не найден (неверный id/опрос в статусе &amp;quot;неактивный&amp;quot;/&lt;br /&gt;
                                 время опроса еще не наступило или уже закончилось)&lt;br /&gt;
choice_required  : в параметре choices не указан ни один пункт опроса&lt;br /&gt;
only_one_choice  : опрос позволяет выбирать только один пункт&lt;br /&gt;
cannot_revote    : пользователь уже голосовал и в данном опросе не разрешено менять выбор&lt;br /&gt;
wrong_choice_id  : в параметре choices как минимум один id не указывает на существующий активный пункт меню&lt;br /&gt;
anonymous_deny   : опрос не позволяет голосовать анонимно&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>АPI-NoDeny-Next</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-01-13T19:27:18Z</updated>

		<summary type="html">&lt;p&gt;Sv: Sv перейменував сторінку з АPI NoDeny Next на АPI-NoDeny-Next без створення перенаправлення&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В NoDeny+ используется два АPI:&lt;br /&gt;
&lt;br /&gt;
* [[АPI для платежных терминалов]]&lt;br /&gt;
* [[Основное-АPI]]&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
	<entry>
		<id></id>
		<title>Основное-АPI</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-01-13T19:25:35Z</updated>

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

		<summary type="html">&lt;p&gt;Sv: Sv перейменував сторінку з API для платежных терминалов на АPI для платежных терминалов без створення перенаправлення&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Общая информация==&lt;br /&gt;
API запросы выполняются по http(s)-протоколу, в ответ приходит json. В ключе error -  код ошибки (0 - отсутствие ошибки)&lt;br /&gt;
&lt;br /&gt;
Тестировать API можно с консоли, например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'https://app.nodeny-plus.com.ua/cgi-bin/api.pl'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опрос урла без каких-либо параметров должен возвращать result = 0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   {&amp;quot;error&amp;quot;:0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это можно использовать для тестирования доступности и работоспособности API&lt;br /&gt;
&lt;br /&gt;
==Подписывание данных==&lt;br /&gt;
&lt;br /&gt;
Вместе с данными, терминал должен прислать в параметре '''signature''' строку, которая вычисляется по следующей формуле:&lt;br /&gt;
* необходимо отсортировать по именам все посылаемые параметры и объединить символом '|' (вертикальная черта): параметр|значение|параметр|значение&lt;br /&gt;
* к полученной строке добавить символ '|' и пароль к API NoDeny&lt;br /&gt;
* получить md5 хеш от полученной строки&lt;br /&gt;
&lt;br /&gt;
Например, терминал посылает на  API следующие данные:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = info&lt;br /&gt;
account = 5982&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После сортировки и конкатенации получаем строку: '''account|5982|command|info'''&lt;br /&gt;
&lt;br /&gt;
После добавления к полученной строке '''|пароль_от_api''' получаем '''account|5982|command|info|пароль_от_api'''&lt;br /&gt;
&lt;br /&gt;
Далее применяем алгоритм md5 и получаем результат: '''3eb6d78df0be8d54e170b15d596c7706'''&lt;br /&gt;
&lt;br /&gt;
Пример на языке perl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$signature = Digest::MD5-&amp;gt;new-&amp;gt;add($string.'|'.$api_password)-&amp;gt;hexdigest;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример на bash:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 'account|5982|command|info|hardpassword' | md5sum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итоговый запрос будет следующим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
https://app.nodeny-plus.com.ua/cgi-bin/api.pl?command=info&amp;amp;account=5982&amp;amp;signature=3eb6d78df0be8d54e170b15d596c7706 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Получение информации об абоненте==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = info&lt;br /&gt;
account = персональный платежный код абонента&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создать платеж==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = pay&lt;br /&gt;
account = персональный платежный код абонента&lt;br /&gt;
amount = денежная сумма&lt;br /&gt;
order_id = уникальный id платежа&lt;br /&gt;
terminal = идентификатор терминала (необязательный параметр)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
amount - число с плавающей запятой, разделитель точка, 2 знака после запятой.&lt;br /&gt;
&lt;br /&gt;
При посылке запроса с тем же order_id, который был послан ранее, платеж не создается, но при этом возвращается error = 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Попросить NoDeny залогировать информацию==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = message&lt;br /&gt;
message = какой-либо текст&lt;br /&gt;
terminal = идентификатор терминала (необязательный параметр)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это можно использовать, например, для регистрации какого-либо события не связанного с завершением пополнения счета. Скажем, клиент ввел свой логин, получил информацию, вставил поддельную купюру или забыл получить сдачу&lt;br /&gt;
&lt;br /&gt;
==Ограничения==&lt;br /&gt;
&lt;br /&gt;
* В данных запрещен символ '|' (вертикальная черта)&lt;br /&gt;
* В параметре order_id и terminal не рекомендуется использовать символ двоеточия&lt;br /&gt;
&lt;br /&gt;
==Коды ошибок==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Проблема на стороне NoDeny. Возможно следует повторить запрос через время &lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|API NoDeny отключено&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|Со стороны терминала присланы некорректные данные. Если терминал пошлет эти же самые данные - будет возвращена ошибка&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|Аккаунт в NoDeny не найден &lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|Не задана команда &lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|Неверно задана денежная сумма&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|Неверный order id&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>