BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 23:32

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 15 апр 2014, 13:28 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Добрый день.
Сейчас, поставлена задача написать приложение которое будет принимать платежи различного рода и добавлять их в биллинг (используя БД биллинга).

Теперь по порядку.

Для примера взят договор у которого статус «Отключен» и сервис в модуле Inet тоже «отключен[договор приостановлен]». Через табличку contract_payment делаем платеж, потом обновляем баланс (таблица contract_balance) и если он положительный, то выставляем статус договора как «Активен»(таблица contract, поле status). Тут вроде все просто. А вот какие надо сделать манипуляции для экземпляра модуля Inet в договоре, чтобы сервис тоже стал активным и клиент мог работать?

Если я правильно понимаю то в таблице inet_serv_xx есть поля deviceState, accessCode которые имеют следующее значения - deviceState=0, accessCode=12. Через БД ставим им значения deviceState=1, accessCode=0. В таблице новые данные сохранились. Пробуем снова соединится с биллингом получаем вот такой вот лог от радиуса:
Код:
Authenticator: {EE 5F B1 C3 1E C9 C3 B3 16 CC 21 87 15 73 21 48}
Attributes:
  User-Name=zig_test
  NAS-Identifier=smf-nas1
  Tunnel-Type:0=1
  NAS-IP-Address=
  NAS-Port=2
  Service-Type=2
  Framed-Protocol=1
  Calling-Station-Id=172.28.230.124
  NAS-Port-Type=5
  Called-Station-Id=
  MS-CHAP2-Response={01 00 C5 DC 0B 0A 32 B0 00 A2 AD DC A0 CF F8 7A 56 05 00 00 00 00 00 00 00 00 37 CE 71 CF 42 8F C2 1C 28 D1 74 70 E3 E1 61 54 27 02 46 C8 03 85 DD 72}
  MS-CHAP-Challenge={03 C4 F9 0B EA 7B 8A 64 0D 1D 39 E1 EB F1 D0 CE}

04-15/10:28:48  INFO [rdsLstnr-p-8-t-3] InetNas - Search by username=zig_test
04-15/10:28:48  INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - [username=zig_test] Authenticated as inetServId:228
04-15/10:28:48  INFO [rdsLstnr-p-8-t-3] InetApplication - inetServ[id=228] deviceState not active (accessCode=12).
04-15/10:28:48  INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor - Return code=12
04-15/10:28:48  INFO [rdsLstnr-p-8-t-3] InetRadiusProcessor -


Т.е. радиус откуда-то все равно берет accessCode=12. Откуда не понятно.

Может я что-то пропустил или не понял. Опишите, если это возможно конечно, алгоритм активации сервиса inet в договоре, что и где меняется в БД чтобы радиус перестал ругаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 апр 2014, 14:52 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не стоит делать напрямую через БД. Там много что делается кроме добавления в БД. Например, отправляются события через activeMQ.

Лучше воспользоваться нашим API, запуская скрипт, созданный в динамических классах.
Или использовать HTTP-обрАзный протокол дилерских платежей бесплатного модуля Card.
Или делать так, как делает клиент биллинга, точно не помню сейчас, там просто HTTP-запрос или Web-сервис.
Или использовать загрузку платежей из файла.
Или использовать один из протоколов модуля MPS.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 апр 2014, 16:08 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Amir писал(а):
Не стоит делать напрямую через БД. Там много что делается кроме добавления в БД. Например, отправляются события через activeMQ.

Лучше воспользоваться нашим API, запуская скрипт, созданный в динамических классах.
Или использовать HTTP-обрАзный протокол дилерских платежей бесплатного модуля Card.
Или делать так, как делает клиент биллинга, точно не помню сейчас, там просто HTTP-запрос или Web-сервис.
Или использовать загрузку платежей из файла.
Или использовать один из протоколов модуля MPS.


А как Вы тогда себе представляете интеграцию с любой платежной системой, если на прямую в БД не желательно ничего вносить? Вернее, не на прямую, а через какой-либо интерфейс который в конечном итоге вносит конечный результат в БД. В моем конкретном случае, вноситься платеж, обновляется баланс на основании этого, меняется статус договора. Как я писал выше, это все легко. Более того, этого хватало для модуля DialUp с головой. А вот под Inet какие-то свои заморочки, которые я как раз и хотел узнать от Вас, как от разработчиков.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 апр 2014, 17:44 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
А как Вы тогда себе представляете интеграцию с любой платежной системой, если на прямую в БД не желательно ничего вносить?
Через один из вариантов API, как я писал выше. Обычно используют протокол модуля Card http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%B5%D0%B9 ,
например http://wiki.bitel.ru/index.php/%D0%98%D ... D1%8F_Card или один из протоколов, поддерживаемый модулем MPS.

Dialup всегда лез в базу, Inet использует кэширование. В этом разница и по этой причине простое добавление в БД или изменение в БД Inet может не увидеть без перезапуска.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 апр 2014, 18:10 
Не в сети

Зарегистрирован: 14 окт 2013, 16:25
Сообщения: 151
Карма: 0
Хорошо. Спасибо за подсказку. Будем разбираться.


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

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


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

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


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

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