Короткий доступ
Описание
Нередка ситуация, когда у абонента на счету закончились финансы и он хочет пополнить счет через одну из платежных систем, но доступ в интернет заблокирован. В этом случае ему можно предложить получить доступ в интернет на короткое время для осуществления оплаты:
Особенности модуля:
- кредит не выдается, учетка не переводится в состояние «разблокирована», тем не менее доступ в интернет предоставляется
- настраивается сколько раз в месяц абонент может воспользоваться данной услугой
Настройка
После «install.pl -x» появится новый тип услуг «Короткий доступ». Создайте услугу этого типа:
- Для версии NoDeny Plus стоимость установите 0.001 (меньше копейки)
- Для версии NoDeny Next стоимость установите 0
Длительность услуги установите, например, в 10 минут (00:10:00)
Теперь на страницу оплаты необходимо добавить кнопку с подключением этой услуги. Страница оплаты хранится в виде шаблона. Выполните:
cat /usr/local/nodeny/web/tmpl/user/pay_base.html
Вы увидите основной шаблон для всех страниц оплаты. Не будем изменять данный файл с шаблоном, а сделаем так, чтобы шаблон брался из базы данных. Перейдите в раздел «Документы» на титульной странице админки.
Если вы до данного момента не создавали шаблоны в разделе «Документы», то вам сначала необходимо создать папку для шаблонов, например, с именем «Кабинет клиента». Справа в поле «теги» обязательно нужно ввести system.
В папке «Кабинет клиента» создайте файл «Платежная страница» (можно иное имя), поставьте такие теги:
system template=user/pay_base
В центральное большое поле ввода вставьте текст из файла /usr/local/nodeny/web/tmpl/user/pay_base.html:
cat /usr/local/nodeny/web/tmpl/user/pay_base.html
Ниже добавьте следующий фрагмент:
<div class='user__ps__main_block'> Если у вас заблокирован доступ, вы можете <a href='?a=u_srv_add&service_id=108'>получить доступ в интернет на 10 минут</a> для осуществления оплаты </div>
В этом тексте необходимо число 108 заменить на id услуги короткого доступа, которую вы создали выше.
Итоговый шаблон будет примерно таким:
<div class='user__ps__main_block'> ... ... {{ template::pay_base.main }} </div> <div class='user__ps__main_block'> Если у вас заблокирован доступ, вы можете <a href='?a=u_srv_add&service_id=108'>получить доступ в интернет на 10 минут</a> для осуществления оплаты </div>
Тестирование
Залогиньтесь как абонент, перейдите на страницу оплаты и попробуйте получить доступ в интернет на короткое время.
Кроме установки услуги, в истории абонента появится запись «Установка услуги короткого доступа». По количеству этих записей NoDeny определяет сколько раз устанавливалась данная услуга.
Проверим, что noserver откроет доступ заблокированному абоненту с услугой короткого доступа:
perl noserver.pl -v -u=186
где 186 - id абонента. Когда используется ключ -u, noserver обрабатывает только данную учетку. Посмотрите, что sql запрос SELECT u.id, u.balance, u.name,... вернул одну строку. Не забывайте, что у абонента должен быть привязан ip-адрес