Биллинговая система Nodeny
28 Марта 2024, 17:22:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Тариф "Посуточный"  (Прочитано 7187 раз)
sedo26
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 100


Просмотр профиля Email
« : 28 Апреля 2021, 12:28:46 »

Подскажите кто как реализовал тариф посуточный, чтоб абонент мог его себе подключить из ЛК.

У нас все тарифы с 1-го по 1-е.
Если я создаю тариф со сроком действия 1день/8грн, подключаю абоненту, то абонент может подключить себе в ЛК на следующий день обычный тариф,
и стоимость пропорционально разобьётся на остаток дней, а так нехочется...  Такая же ситуация с услугой "Приостановка".

Как можно сделать чтоб после "Приостановка" можно было подключить тариф "Посуточный", а после "Посуточный" - обыный тариф, но только с 1го числа.
Модулем "короткие услуги" я так понимаю это тоже неполучится реализовать? 
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 377


Просмотр профиля
« Ответ #1 : 28 Апреля 2021, 15:52:07 »

у меня в настройках самих услуг - Абонплата в сутки. выставляется стоимость, и если не хватает денег на полной продление, то включается посуточное списание. Режим услуг - стандарт
Записан
Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #2 : 08 Мая 2021, 09:09:54 »

При создании услуги, выбираешь режим "пропорционально" В общем указываешь цену за месяц. Так же можно указать количество трафика, после значения которого будет сниматься деньги. И ежедневно будет насчитываться тариф, пропорционально дням. А снимет их или нет - это условие трафика.
Записан

Кому то Бог дал ручки, а кому то - грабельки.
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #3 : 10 Июня 2021, 10:08:03 »

Я столкнулся с такой проблемой если тариф "Посуточный".
В тарифе установлено "Не уходить в минус", у клиента не хватает средств соответственно статус услуги "Заморожен"
Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время.
Если перезапускаю ядро, то абонплата снимается сразу и тариф активируется, и так каждый раз.
Может кто подскажет в чем может быть проблема. Спрашивал тут http://forum.nodeny.com.ua/index.php?topic=3263.msg36800#msg36800 к сожалению так никто не ответил.
Подскажите где может быть проблема?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #4 : 10 Июня 2021, 15:23:02 »

Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время.
модуль kernel/services.pm не менял?

Могу описать как работает эта фича. Всем будет полезно. Когда приходит время переустановки услуг и обнаруживается, что денег не хватит, у услуги устанавливается:
1) стоимость 0
2) длительность услуги 0
длительность услуги 0 говорит что нужно услугу завершать как можно скорее и ставить новую. Но в kernel/services.pm есть защита от слишком частой перустановки услуг. Не только от этого, но и чтоб блокировать постоянную попытку установить если вдруг произошла какая-то критическая ошибка:
 
Код:
$Errors->{$id} = $time + 120;
Попытки не будут чаще пириода в 120 секунд. Возможно, это число у тебя изменено.

Еще надо проверить с каким периодом вообще запускается функция переустановки:

Код:
nod::tasks->new(
        task         => sub{ main($_[0], $single, $config, $delay_services) },
        period       => 5,
        first_period => $single? 0 : 6,
    );
здесь видно, что каждые 6 секунд
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #5 : 15 Июня 2021, 09:44:48 »

Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время.
модуль kernel/services.pm не менял?

Могу описать как работает эта фича. Всем будет полезно. Когда приходит время переустановки услуг и обнаруживается, что денег не хватит, у услуги устанавливается:
1) стоимость 0
2) длительность услуги 0
длительность услуги 0 говорит что нужно услугу завершать как можно скорее и ставить новую. Но в kernel/services.pm есть защита от слишком частой перустановки услуг. Не только от этого, но и чтоб блокировать постоянную попытку установить если вдруг произошла какая-то критическая ошибка:
 
Код:
$Errors->{$id} = $time + 120;
Попытки не будут чаще пириода в 120 секунд. Возможно, это число у тебя изменено.

Еще надо проверить с каким периодом вообще запускается функция переустановки:

Код:
nod::tasks->new(
        task         => sub{ main($_[0], $single, $config, $delay_services) },
        period       => 5,
        first_period => $single? 0 : 6,
    );
здесь видно, что каждые 6 секунд

Не менял,

вот часть кода

Код:
sub start
{
    my(undef, $single, $config) = @_;

    my $delay_services = { map{ $_ => 1 } split ',', $cfg::k_services_delay_services.'' };
    keys %$delay_services && tolog 'Delay services:', $delay_services;

    nod::tasks->new(
        task         => sub{ main($_[0], $single, $config, $delay_services) },
        period       => 5,
        first_period => $single? 0 : 6,
    );

    nod::tasks->new(
        task         => sub{ service_recovery($_[0], $single, $config) },
        period       => 61,
        first_period => $single? 1 : 64,
    );
}


Код:
            my $err_to_log = "Uid=$uid Unsuccessful attempt. The next try will be in 120 sec (service id=$id)";
            $err_to_log .= '. Reason: '.$err->{for_adm} if ref $err eq 'HASH';
            tolog $err_to_log;
            $Errors->{$id} = $time + 120;
            next;
        }

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #6 : 16 Июня 2021, 07:44:51 »

А grep-ни лог по конкретному uid. Я, кстати, поэтому формат лога и изменил чтоб uid писался в каждой строке
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #7 : 19 Июня 2021, 19:29:15 »

Код:
10.05.2021 00:39:15 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one
10.05.2021 00:39:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка
10.05.2021 04:52:13 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one
10.05.2021 04:52:13 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка
10.05.2021 09:05:42 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one
10.05.2021 09:05:42 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка
10.05.2021 13:20:37 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one
10.05.2021 13:20:37 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка
10.05.2021 17:36:49 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one
11.05.2021 19:08:00 Uid=8893 It's time to finish service id=121280 (Подобовий) and set next one
12.05.2021 20:28:33 Uid=8893 It's time to finish service id=121287 (Подобовий) and set next one
13.05.2021 22:05:40 Uid=8893 It's time to finish service id=121297 (Подобовий) and set next one
14.05.2021 23:36:32 Uid=8893 It's time to finish service id=121306 (Подобовий) and set next one
16.05.2021 01:11:04 Uid=8893 It's time to finish service id=121314 (Подобовий) and set next one
17.05.2021 02:41:43 Uid=8893 It's time to finish service id=121320 (Подобовий) and set next one
17.05.2021 02:41:53 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.05.2021 02:41:53 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.05.2021 06:56:33 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.05.2021 06:56:34 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.05.2021 11:11:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.05.2021 11:11:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.05.2021 15:26:53 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.05.2021 15:26:53 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.05.2021 19:43:15 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.05.2021 19:43:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 00:02:28 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 00:02:28 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 04:18:36 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 04:18:37 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 08:34:27 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 08:34:27 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 12:50:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 12:50:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 17:08:14 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 17:08:14 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.05.2021 21:26:07 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.05.2021 21:26:07 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.05.2021 01:43:44 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.05.2021 01:43:44 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.05.2021 06:00:21 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.05.2021 06:00:21 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.05.2021 10:14:17 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.05.2021 10:14:17 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.05.2021 14:26:43 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.05.2021 14:26:43 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.05.2021 18:42:19 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one

15.06.2021 15:34:47 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
15.06.2021 15:34:47 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
15.06.2021 20:04:35 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
15.06.2021 20:04:35 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 00:35:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 00:35:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 05:05:48 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 05:05:49 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 09:35:18 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 09:35:18 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 14:06:38 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 14:06:38 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 18:36:58 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 18:36:58 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
16.06.2021 23:07:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
16.06.2021 23:07:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.06.2021 03:37:41 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.06.2021 03:37:41 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.06.2021 08:07:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.06.2021 08:07:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.06.2021 12:38:45 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.06.2021 12:38:45 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.06.2021 17:09:03 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.06.2021 17:09:03 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
17.06.2021 21:39:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
17.06.2021 21:39:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.06.2021 02:11:08 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.06.2021 02:11:08 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.06.2021 06:41:04 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.06.2021 06:41:04 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.06.2021 11:10:36 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.06.2021 11:10:36 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.06.2021 15:39:09 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.06.2021 15:39:10 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
18.06.2021 20:06:18 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
18.06.2021 20:06:18 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.06.2021 00:32:44 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.06.2021 00:32:44 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.06.2021 04:50:35 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.06.2021 04:50:36 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.06.2021 08:59:15 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.06.2021 08:59:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.06.2021 13:12:24 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.06.2021 13:12:24 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
19.06.2021 17:28:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
19.06.2021 17:28:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
« Последнее редактирование: 19 Июня 2021, 19:51:41 от Jovani » Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #8 : 20 Июня 2021, 22:17:02 »

Не могу понять где бока. По тестам у меня все ок. (В логе на "Reason: критическая ошибка" не обращать внимание, это следствие схемы работы модуля, как-нибудь сообщение пофикшу). Схема работы очень простая:

В $Errors хранится время, когда можно пробовать переустанавливать услугу. В $time текущее время.
Код:
$Errors->{$id} > $time && next;
Если время, когда можно пробовать переустанавливать услугу больше текущего - переходим к обработке следующей услуги.

Если ошибка переустановки:
Код:
$Errors->{$id} = $time + 120;
к текущему времени добавляем 120 секунд.

Работает давно и у всех. Точно ничего не менял в файле? Перепиши новый из репозитория.
Если запустить:
Код:
perl nokernel.pl -v -m=services
то запрос
Код:
SELECT v.id, v.uid, s.module, s.title, u.balance ...
выполняется каждые 5 секунд?

И проблема только с одним тарифом или с любым у которого галка стоит "Не уходить в минус"?
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #9 : 22 Июня 2021, 11:32:33 »

Не могу понять где бока. По тестам у меня все ок. (В логе на "Reason: критическая ошибка" не обращать внимание, это следствие схемы работы модуля, как-нибудь сообщение пофикшу). Схема работы очень простая:

В $Errors хранится время, когда можно пробовать переустанавливать услугу. В $time текущее время.
Код:
$Errors->{$id} > $time && next;
Если время, когда можно пробовать переустанавливать услугу больше текущего - переходим к обработке следующей услуги.

Если ошибка переустановки:
Код:
$Errors->{$id} = $time + 120;
к текущему времени добавляем 120 секунд.

Работает давно и у всех. Точно ничего не менял в файле? Перепиши новый из репозитория.
Если запустить:
Код:
perl nokernel.pl -v -m=services
то запрос
Код:
SELECT v.id, v.uid, s.module, s.title, u.balance ...
выполняется каждые 5 секунд?

И проблема только с одним тарифом или с любым у которого галка стоит "Не уходить в минус"?


Да, это проблема со всеми услугами с галкой "Не уходить в минус"
запрос
Код:
SELECT v.id, v.uid, s.module, s.title, u.balance ...
не выполняется каждые 5 секунд. (вывод в прикрепленном файле)

Точно ничего не менял в файле, уже переписал новый из репозитория.
Код:
Restored 'kernel/services.pm'
At revision 637.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #10 : 23 Июня 2021, 12:09:05 »

Возможно какой-то иной модуль затупливает и не дает время для этого модуля. Попробуй отдельным процессом запустить services модуль:
Код:
-d -m=services  &
и не забудь убрать из автозапуска с основным ядром (в веб настройках отключается) и перезапустить основное ядро
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #11 : 23 Июня 2021, 15:33:50 »

Возможно какой-то иной модуль затупливает и не дает время для этого модуля. Попробуй отдельным процессом запустить services модуль:
Код:
-d -m=services  &
и не забудь убрать из автозапуска с основным ядром (в веб настройках отключается) и перезапустить основное ядро

Спасибо, так работает, (срабатывает через 120 сек.).

Код:
root@nodenyplus:~ # ps -ax | grep noker
  526 v0- S       1386:35.87 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=pingserver -d
  527 v0- S       2059:50.52 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=notifications -d
72438  3- S        235:10.26 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=ponmon -d
71771  5  S          0:01.59 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d
71794  5  S          0:00.60 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d -m=services
72235  5  S+         0:00.00 grep noker
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #12 : 23 Июня 2021, 17:07:17 »

Сейчас возник вопрос автоплатежей. Если установлено "Не уходить в минус", автоплатеж по токену  не списывает с карточки деньги.
Как то решить можно?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4794



Просмотр профиля
« Ответ #13 : 24 Июня 2021, 09:52:58 »

Ты имеешь ввиду оплату в Фонди без участия абонента?
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #14 : 24 Июня 2021, 14:22:28 »

Да.
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!