BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 22:51

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 20 мар 2017, 19:01 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
Мне нужно, чтобы при авторизации в ЛК, т.е. когда вводят логин/пароль (авторизация по модулю Inet) и такого логина еще нет, то создавался бы договор по шаблону и указанным логином и паролем.

Через свой ModuleAuth не получится, т.к. туда не передаётся пароль. Какие варианты есть? BGAuthFilter или можно как-то попроще?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2017, 19:22 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
а если человек опечатается в пароле, как он потом в ЛК попадет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2017, 19:30 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
а если человек опечатается в пароле, как он потом в ЛК попадет?


Никак. Придумает новый логин и сгенерится новый договор.
Это нужно для предоставления платного WiFi в местах где нет сотовой связи и соответственно нет смс.
Клиента редиректит на страницу входа в ЛК, он попадет в ЛК с придуманным логином/паролём, выбирает тариф, оплачивает
банковской картой услугу через платёжный модуль и ему включается интернет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2017, 20:27 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
вход в ЛК и регистрация это должно быть две разные формы

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2017, 20:29 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Bazhutyan писал(а):
skn писал(а):
а если человек опечатается в пароле, как он потом в ЛК попадет?


Никак. Придумает новый логин и сгенерится новый договор.
Это нужно для предоставления платного WiFi в местах где нет сотовой связи и соответственно нет смс.
Клиента редиректит на страницу входа в ЛК, он попадет в ЛК с придуманным логином/паролём, выбирает тариф, оплачивает
банковской картой услугу через платёжный модуль и ему включается интернет.


обычно оплатой банковской картой требует подтверждения СМС, но СМС нет... странно


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2017, 21:01 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
skn писал(а):
обычно оплатой банковской картой требует подтверждения СМС, но СМС нет... странно

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2017, 08:34 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
И всё-таки, как сделать создание договора при авторизации в ЛК?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 авг 2017, 04:39 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
В продолжении этой темы появилась одна проблема.
Договор создаётся по событию WiFiActivateEvent. Абонент заполняет ФИО и Телефон и создаётся договор с этими параметрами, в частности логином в InetServ является номер телефона.
Проблема в том, что иногда события с одинаковыми параметрами происходят почти одновременно и выполняются параллельно. Я не знаю из-за чего это происходит, возможно
абонент на странице регистрации два раза успевает кнопку нажать, а может и не в этом дело. Но получается, что код проверки существования договора с такими же параметрами
выполняется одновременно и в итоге создаются два договора с одинаковыми параметрами. Что придумать можно, чтобы этого избежать?

Вот недавний пример:
Код:
08-17/16:33:36  INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.wifi.common.event.WiFiActivateEvent
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.ResourceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.wsResoure ru.bitel.oss.systems.inventory.resource.server.R
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.deviceInterfaceService ru.bitel.oss.systems.invento
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] myActivation - service with login 9993352354 not found
08-17/16:33:36  INFO [dyn-clss-evnt-lstnr-p-4-t-3] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1502944416875
08-17/16:33:36  INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.wifi.common.event.WiFiActivateEvent
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.devicePortService ru.bitel.oss.systems.inventory.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-3] ResourceManager - Inject to ru.bitel.bgbilling.modules.inet.api.common.service.InetServService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.inetServService ru.bitel.bgbilling.modules.inet.api.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.ResourceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.wsResoure ru.bitel.oss.systems.inventory.resource.server.R
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.deviceInterfaceService ru.bitel.oss.systems.invento
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] myActivation - service with login 9993352354 not found
08-17/16:33:36  INFO [dyn-clss-evnt-lstnr-p-4-t-4] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1502944416941
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.devicePortService ru.bitel.oss.systems.inventory.
08-17/16:33:36 DEBUG [dyn-clss-evnt-lstnr-p-4-t-4] ResourceManager - Inject to ru.bitel.bgbilling.modules.inet.api.common.service.InetServService ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.inetServService ru.bitel.bgbilling.modules.inet.api.
08-17/16:33:36  INFO [dyn-clss-evnt-lstnr-p-4-t-4] CommonKernelEventProcessor - Process event cid:293; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 293; scid: -1; userId: 0; timestamp: 1502944416989
08-17/16:33:37  INFO [dyn-clss-evnt-lstnr-p-4-t-3] CommonKernelEventProcessor - Process event cid:292; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 292; scid: -1; userId: 0; timestamp: 1502944417063
08-17/16:33:38  INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - Process time => 1503
08-17/16:33:38  INFO [http-bio-0.0.0.0-8080-exec-3] ScriptEventListener - WiFi Activation
{phone=9993352354, fio=Иванов Иван Ивнович}
fio=Иванов Иван Ивнович
phone=9993352354
договор не найден, создаем новый
sms: логин: 9993352354, пароль: BrnGVX
result 0 = 63998
result 1 = 1
result 2 = 1.7
result 3 = 94849.104
id = 63998
sms count = 1
cost = 1.7
balance = 94849.104

08-17/16:33:38  INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - Process time => 1670
08-17/16:33:38  INFO [http-bio-0.0.0.0-8080-exec-2] ScriptEventListener - WiFi Activation
{phone=9993352354, fio=Иванов Иван Ивнович}
fio=Иванов Иван Ивнович
phone=9993352354
договор не найден, создаем новый
sms: логин: 9993352354, пароль: 7G3pCT
result 0 = 63999
result 1 = 1
result 2 = 1.7
result 3 = 94847.404
id = 63999
sms count = 1
cost = 1.7
balance = 94847.404


Вот в логах сообщение
Код:
myActivation - service with login 9993352354 not found
это проверка в самом начале события


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2017, 11:11 
Не в сети
Клиент

Зарегистрирован: 03 авг 2010, 15:18
Сообщения: 357
Откуда: Камчатка
Карма: 8
up


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 сен 2017, 17:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Bazhutyan писал(а):
В продолжении этой темы появилась одна проблема.
Договор создаётся по событию WiFiActivateEvent. Абонент заполняет ФИО и Телефон и создаётся договор с этими параметрами, в частности логином в InetServ является номер телефона.
Проблема в том, что иногда события с одинаковыми параметрами происходят почти одновременно и выполняются параллельно. Я не знаю из-за чего это происходит, возможно
абонент на странице регистрации два раза успевает кнопку нажать, а может и не в этом дело. Но получается, что код проверки существования договора с такими же параметрами
выполняется одновременно и в итоге создаются два договора с одинаковыми параметрами. Что придумать можно, чтобы этого избежать?

Я сталкивался с таким тоже, когда тоже в скрипте создавались договоры для WiFi. Можно просто синхронизовать это место ( на уровне метода или объекта). Вот тут есть пример ( synchronized):
http://wiki.bitel.ru/index.php/WiFi-%D0 ... %B7_assist


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.107s | 38 Queries | GZIP : On ]