Короткий доступ

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

Описание

Нередка ситуация, когда у абонента на счету закончились финансы и он хочет пополнить счет через одну из финансовых систем, но доступ в интернет заблокирован. В этом случае ему можно предложить получить доступ в интернет на короткое время для осуществления оплаты:

Особенности модуля:

  • кредит не выдается, учетка не переводится в состояние «разблокирована», тем не менее доступ в интернет предоставляется
  • настраивается сколько раз в месяц абонент может воспользоваться данной услугой

Настройка

После «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-адрес