Начиная с версии 1.5.1832 системы WNAM поддерживается возможность взимания оплаты с абонента путем интеграции с внешней платежной/биллинговой платформой. Для настройки этого способа необходимо в разделе интерфейса администратора "Конфигурация" → "Платный доступ" сформировать запись о тарифе.

Для создания тарифа необходимо на представленной странице нажать кнопку "Создать тариф" и задать ряд параметров.

ПараметрЗначение
Название Произвольное название тарифа, абоненту не отображается.
Число сессий в день для доступа без оплатыЗадаёт лимит на число сессий в день, когда разрешен доступ к сети без совершения оплаты.
Число сессий в день для совершения оплатыЗадаёт лимит на число сессий в день для попытки совершения оплаты.
Страница выбора тарифаУказывает на шаблон страницы (в конструкторе - страница из раздела "Другое"), на которой производится выбор режима доступа "платный/бесплатный", и расположена ссылка для перехода на портал совершения оплаты.
Длительность бесплатной сессии, сек.Не используется в данном способе.
Действие по исчерпанию лимита бесплатных сессийЗадает переход на страницу, указанную в поле "Ссылка (URL)" при выборе одного из параметров "Заданная ссылка"/"Страница-заглушка", не используется в данном способе.
Ссылка (URL) Ссылка (URL) перехода по превышению лимита числа бесплатных сессий, не используется в данном способе.
ОтключенПереключатель активности/не активности тарифа.
Установить cookie при переходеВключает механизм формирования шифрованного cookie, которое устанавливается при редиректе сессии абонента на портал оплаты.
Домен для cookieУказывает домен для cookie. Рекомендуется держать портал оплаты и портал системы WNAM на одном домене 2го уровня.
Показывать рекламу даже тем, кто оплатилВключает механизм показа рекламы для платных абонентов.
Показывать рекламу, тем кто отказался платитьВключает механизм показа рекламы для абонентов, которые отказались производить оплату.
Страница отображения статуса оплаченностиУказывает на шаблон страницы (в конструкторе - страница из раздела "Другое"), которая отображает параметры тарифного плана при повторных подключениях абонента, совершившего оплату.
Платежный шлюз Не используется в данном способе.

При использовании внешнего биллинга не требуется определять тарифные элементы. При выборе шаблонов страниц для настройки "Страницы выбора тарифа" и "Страницы отображения статуса оплаченности" появляется всплывающее окно с миниатюрами страниц.

Шаблон страницы выбора тарифа должен содержать кнопки (ссылки), по которым абонент может воспользоваться либо бесплатным, либо платным доступом. Выбор бесплатного доступа активирует либо механизм рекламных кампаний, либо механизм перехода по заданной ссылке с авторизацией входа (старта сессии) в сеть Интернет. Выбор платного доступа ведет к перенаправлению веб-сессии  абонента на внешний биллинговый портал с установкой cookie, содержащего сведения об абоненте (для принятия решения о проведении оплаты и т.п.).

Пример шаблона страницы приведен ниже:

<form id="redirectForm" class="form-signin" role="form" name="redirect" action="/cp/login" method="post">
  <input type=hidden name=wnam value="$(wnam)">
  <center>
    <button type="submit" name="loginb" class="btn btn-primary mb-15">Использовать Wi-Fi бесплатно</button>
  </center>
</form>
<a href='https://wifiportal/api/setcookie' class="btn btn-accent mb-15">Приобрести подписку</a>

Сервер внешнего портала оплаты должен быть добавлен в список разрешенных на хотспоте (white list, walled garden), так как перенаправление на портал производится до предоставления доступа в сеть Интернет. Сам портал не должен содержать контента, ссылающегося на сторонние ресурсы.

Если абонент, у которого в настоящий момент активирован платный доступ, подключается к сети повторно, то вместо страницы выбора режима работы (платный/бесплатный доступ) ему отображается страница со сведениями о текущем оплаченном тарифе. Она должна содержать условные значения ($(tariffName) (имя тарифа) и $(accountName) (номер лицевого счета абонента)), получаемые по API от биллинговой системы, а также параметр ($(validUntil)), отображающий период действия тарифа:

<form id="redirectForm" class="form-signin" role="form" name="redirect" action="/cp/login" method="post">

<input type=hidden name=wnam value="$(wnam)">
<div class="text">Действует до <strong><span id="validDate"></span></strong></div>
<div class="row">
<div class="col">
<div class="text">Подписка <strong>$(tariffName)</strong></div>
</div>
<div class="col">
<div class="text">Счет / ID <strong>$(accountName)</strong></div>
</div>
</div>
<button type="submit" name="loginb"class="btn btn-primary">Продолжить</button>
</form>

<script>
$("#validDate").text(new Date($(validUntil)).toLocaleString());
</script>

После создания и сохранения тарифа необходимо применить его ко всей системе в разделе "Конфигурация" → "Перенаправление" либо к заданной площадке. Также можно указать число рекламных блоков из механизма рекламных кампаний, которые будут продемонстрированы. 

Проверка работоспособности тарифа

При включенном механизме платного доступа в лог-файле wnam.log будут зафиксированы следующие шаги оплаты:

11:22:15.574 DEBUG [c.n.w.web.cp.CaptivePortalController:512] - CP mikrotik clicked: username=C4:93:D9:AA:AA:AA, ip=10.71.106.228, dst='http://mover.ee/', server_address=10.71.106.1:80, server_name='server'
11:22:15.580 DEBUG [c.n.w.web.cp.CaptivePortalController:3048] - processAuthRequest MIKROTIK: username=C4:93:D9:AA:AA:AA, ip=10.71.106.228, server=10.71.106.1:80, site_id=45, dst='http://mover.ee/' adv curr/max=1/3
11:22:15.580 DEBUG [c.n.w.web.cp.CaptivePortalController:3246] - processRedirectRequestCi mac=C4:93:D9:AA:AA:AA, method=PAY, formName=5c7142e59903585dd408d453, redirectUrl=http://comingsoon.cloud.ee/, key=f98671c0-ff9f-4f00-9095-7fcf86183b53
11:23:33.719 DEBUG [com.netams.wnam.web.api.Api:672] - payCustomer automatic login for MAC=C4:93:D9:AA:AA:AA IP=10.71.106.228 site_id=45 key=f98671c0-ff9f-4f00-9095-7fcf86183b53
11:23:33.817 DEBUG [c.n.wnam.services.WnamCmdService:746] - AUTH for new session ID=802101d9-190508-492e0a, request MAC=C4:93:D9:AA:AA:AA, IP=10.71.106.228, cust_clientid=null, site=45
11:23:33.847 DEBUG [c.n.wnam.services.MikrotikService:95] - startSession at NAS IP=192.168.10.21, MAC=C4:93:D9:AA:AA:AA, j=0
11:23:33.847 DEBUG [com.netams.wnam.web.cp.Mikrotik:50] - backToMikrotikApi login j=0, username=C4:93:D9:AA:AA:AA, dst=''
11:23:33.850 DEBUG [c.n.wnam.services.WnamCmdService:820] - ACCT Start existing session ID=802101d9-190508-492e0a, MAC=C4:93:D9:AA:AA:AA, IP=10.71.106.228, NAS=192.168.10.21, site=45
11:23:33.851 DEBUG [c.n.wnam.services.WnamCmdService:960] - ACCT-Start uhid task NAS=192.168.10.21, CUST=C4:93:D9:AA:AA:AA, IP=10.71.106.228, DB=wnam_db
11:23:33.851 DEBUG [c.n.wnam.services.WnamCmdService:225] - ACCT-Start uhid processing NAS=192.168.10.21, CUST=C4:93:D9:AA:AA:AA, IP=10.71.106.228, DB=wnam_db
11:23:34.114 DEBUG [c.n.wnam.services.WnamCmdService:1410] - updateHostIdentity client=10.71.106.228, mac=C4:93:D9:AA:AA:AA, db=wnam_db, hostname set to 'Galaxy-A6'
12:21:30.403 DEBUG [c.n.wnam.services.WnamCmdService:820] - ACCT Stop existing session ID=802101d9-190508-492e0a, duration=00:57:56, MAC=C4:93:D9:AA:AA:AA, IP=10.71.106.228, NAS=192.168.10.21, site=45

Также в профиле пользователя будет отображена информация об оплате ("Пользователи" вкладка "Оплата").

  • No labels