Вспомогательные скрипты и утилиты — различия между версиями
(Новая страница: «Скрипт импорта платежей») |
Admin (обсуждение | вклад) (→Настройка заглушки через IPN Действия) |
||
| (не показано 14 промежуточных версий 3 участников) | |||
| Строка 1: | Строка 1: | ||
| − | [[Скрипт импорта платежей]] | + | == Скрипт рассылки сообщений о состоянии баланса == |
| + | Для рассылки информации о балансе используется скрипт /opt/ebs/data/sendmail.py. | ||
| + | Скрипт использует шаблон "Информационное письмо" сообщения о балансе, вид которого можно изменить в интерфейсе администратора. | ||
| + | По-умочланию шаблон выглядит так: | ||
| + | <pre> | ||
| + | --------------------------------------------------- | ||
| + | Это сообщение сгенерировано биллинговой системой! | ||
| + | --------------------------------------------------- | ||
| + | |||
| + | Здравствуйте, ${account.username}. | ||
| + | Уведомляем, что актуальный баланс Вашего лицевого счета составляет ${"%.2f" % account.ballance} руб. Размер кредита ${account.credit}. | ||
| + | Пожалуйста, пополните баланс во избежание блокировки. | ||
| + | --- | ||
| + | ${operator.organization} | ||
| + | </pre> | ||
| + | |||
| + | Параметры работы скрипта настраиваются в конфиг-файле ebs_config.ini | ||
| + | <pre> | ||
| + | [sendmail] | ||
| + | log_type = logging | ||
| + | log_file = log/sendmail_log | ||
| + | log_level= 0 | ||
| + | log_ident= ebs_sendmail | ||
| + | subject = Provider information - тема письма | ||
| + | use_tls = False - использовать TLS | ||
| + | send_if_less = 5000 - пороговое значение баланса, ниже которого пользователь получит письмо | ||
| + | host = smtp.gmail.com - адрес SMTP сервера | ||
| + | host_user = SMTP имя пользователя | ||
| + | host_password = пароль SMTP пользователя | ||
| + | port = 25 SMTP порт сервера | ||
| + | email_from = info@provider.com - с этого адреса будут слаться письма | ||
| + | fail_silently = False - в случае ошибки продолжать отправку | ||
| + | </pre> | ||
| + | |||
| + | Для того, чтобы рассылать уведомления в 00:00:00 каждого дня, нужно добавить в crontab следующую строку: | ||
| + | <pre> | ||
| + | 0 0 * * * /usr/bin/env python /opt/ebs/data/sendmail.py >>/opt/sendmail.log | ||
| + | </pre> | ||
| + | |||
| + | == Страница-заглушка == | ||
| + | Вы можете настроить ExpertBilling так, что если у пользователя закончился баланс, то сервер доступа начнёт его перенаправлять на специальную страницу, где будет сказано об этом. | ||
| + | Возможны 2 варианта настройки: | ||
| + | * через IPN действия; | ||
| + | * через гостевой VPN пул; | ||
| + | |||
| + | У каждого из этих методов есть свои достоинства и недостатки. Использование IPN действий невозможно при динамической выдаче VPN IP адресов абонентам, а гостевой VPN пул не охватывает IPN абонентов. | ||
| + | |||
| + | === Настройка заглушки через IPN Действия === | ||
| + | Для настройки заглушки необходимо: | ||
| + | |||
| + | 1 Включить и настроить IPN действия для тарифного плана. Если вы используете не IPN тарифные планы, то необходимо также разрешить PPTP/PPPOE/DHCP подключение при отрицательном балансе и блокировках. | ||
| + | |||
| + | 2 Настроить apache так, чтобы при запросе любой страницы он отдавал сообщение о том, что у пользователя закончились деньги. | ||
| + | |||
| + | 3 Настроить файервол на сервере доступа. | ||
| + | |||
| + | Приступим. | ||
| + | 1. | ||
| + | [[Файл:ipn_actions_blank.png|center|IPN действия включены в тарифном плане]] | ||
| + | |||
| + | |||
| + | [[Файл:ipn_actions_subaccount.png|center|Аккаунту разрешено подключаться с нулевым балансом]] | ||
| + | Команды сервера доступа, к которому привязан аккаунт должны быть такими: | ||
| + | |||
| + | '''Для VPN тарифных планов:''' | ||
| + | |||
| + | Включить субаккаунт: | ||
| + | <pre> | ||
| + | /ip firewall address-list remove [find comment==blocked-$subacc_id] | ||
| + | </pre> | ||
| + | Отключить субаккаунт: | ||
| + | <pre> | ||
| + | /ip firewall address-list add list=blocked_users address=$subacc_vpn_ip_address comment=blocked-$subacc_id disabled=no | ||
| + | </pre> | ||
| + | |||
| + | '''Для IPN тарифных планов:''' | ||
| + | |||
| + | Включить субаккаунт: | ||
| + | <pre> | ||
| + | /ip firewall address-list remove [find comment==blocked-$subacc_id] | ||
| + | </pre> | ||
| + | Отключить субаккаунт: | ||
| + | <pre> | ||
| + | /ip firewall address-list add list=blocked_users address=$subacc_ipn_ip_address comment=blocked-$subacc_id disabled=no | ||
| + | </pre> | ||
| + | |||
| + | Для использования данной возможности субаккаунту _ДОЛЖЕН_ быть назначен серер доступа в его профиле. | ||
| + | |||
| + | 2. | ||
| + | Для версии ниже 1.5(в 1.5 по-уомлчанию создаётся данная конфигурация и файл index.html) добавьте в /etc/apache2/sites-enabled/ файл vhost_blank.conf со следующим содержимым | ||
| + | <pre> | ||
| + | Listen 81 | ||
| + | <VirtualHost *:81> | ||
| + | ServerName 10.1.1.1 | ||
| + | ServerAdmin webmaseter@isp.net | ||
| + | |||
| + | ErrorLog /var/log/apache2/nomoney_err.log | ||
| + | CustomLog /var/log/apache2/nomoney_access_log combined | ||
| + | DocumentRoot /opt/ebs/web/nomoney | ||
| + | |||
| + | <Directory "/opt/ebs/web/nomoney"> | ||
| + | AllowOverride All | ||
| + | Options FollowSymlinks Includes | ||
| + | ErrorDocument 404 /index.html | ||
| + | DirectoryIndex index.html | ||
| + | AddDefaultCharset utf-8 | ||
| + | allow from all | ||
| + | </Directory> | ||
| + | </Virtualhost> | ||
| + | </pre> | ||
| + | По пути /opt/ebs/web/nomoney нужно создать файл index.html со следующим содержимым: | ||
| + | <pre> | ||
| + | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
| + | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| + | <head> | ||
| + | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| + | <title>Сообщение от провайдера::ExpertBilling</title> | ||
| + | </head> | ||
| + | <body> | ||
| + | <center><img src="provider_logo.png" alt="" /></center> | ||
| + | <h1 align="center">Уважаемый абонент.</h1> | ||
| + | <h1 align="center">На вашем счету закончились деньги. <a href="https://isp.net." target="_blank">"Веб-кабинет"</a></h1> | ||
| + | </body> | ||
| + | </html> | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | Перезапустите Apache для того, чтобы изменения вступили в силу. | ||
| + | <pre> | ||
| + | /etc/init.d/apache2 restart | ||
| + | </pre> | ||
| + | 3. Настроим Firewall. Предположим, что 10.1.1.1 - IP адрес сервера с Apache, который мы настраивали пунктом выше. | ||
| + | Правила должны стоять в самом начале!!! | ||
| + | <pre> | ||
| + | /ip firewall filter add src-address-list=internet_users dst-address=10.1.1.1 action=accept | ||
| + | /ip firewall filter add src-address=10.1.1.1 dst-address-list=internet_users action=accept | ||
| + | /ip firewall filter add src-address-list=blocked_users action=drop | ||
| + | </pre> | ||
| + | |||
| + | Настроим редирект всех HTTP запросов | ||
| + | <pre> | ||
| + | /ip firewall nat add chain=srcnat src-address-list=blocked_users action=masquerade | ||
| + | /ip firewall nat add chain=dstnat protocol=tcp dst-port=80 src-address-list=blocked_users action=dst-nat to-addresses=10.1.1.1 to-ports=81 | ||
| + | </pre> | ||
| + | |||
| + | Теперь при наступлении отрицательного баланса биллинг будет посылать на сервер доступа команду на добавление VPN IP адреса субаккаунта в адрес-лист blocked_users, все запросы на 80 порт которого будут редиректиться на сервер с apache, который по указанному адресу будет показывать нашу заглушку. | ||
| + | |||
| + | === Настройка заглушки через гостевой VPN пул === | ||
| + | Гостевой VPN служит для динамической выдачи VPN IP адресов, в случае если абонент заблокирован по причине отрицательного баланса или наличия других блокировок | ||
| + | Для настройки заглушки необходимо: | ||
| + | |||
| + | 1 Создать VPN пул через интерфейс администратора. В пуле нужно указать сеть, которая не будет пересекаться ни с одной из ваших существующих сетей. | ||
| + | |||
| + | 2 Указать созданный VPN пул в тарифном плане пользователя | ||
| + | |||
| + | 2 Настроить apache так, чтобы при запросе любой страницы он отдавал сообщение о том, что у пользователя закончились деньги. | ||
| + | |||
| + | 3 Настроить файервол на сервере доступа. | ||
| + | |||
| + | Приступим. | ||
| + | 1. Создайте VPN пул через меню Справочники->IP пулы | ||
| + | [[Файл:vpn_pool.png|center]] | ||
| + | |||
| + | 2. Укажите выбранный пул в тарифном плане | ||
| + | [[Файл:vpn_guestpool.png|center|Указание гостевого VPN пула]] | ||
| + | |||
| + | 3. | ||
| + | Добавьте в /etc/apache2/sites-enabled/ файл vhost_blank.conf со следующим содержимым | ||
| + | <pre> | ||
| + | Listen 81 | ||
| + | <VirtualHost *:81> | ||
| + | ServerName 10.250.1.1 | ||
| + | ServerAdmin webmaseter@isp.net | ||
| + | |||
| + | ErrorLog /var/log/apache2/nomoney_err.log | ||
| + | CustomLog /var/log/apache2/nomoney_access_log combined | ||
| + | DocumentRoot /opt/ebs/web/nomoney | ||
| + | |||
| + | <Directory "/opt/ebs/web/nomoney"> | ||
| + | AllowOverride All | ||
| + | Options FollowSymlinks Includes | ||
| + | ErrorDocument 404 /index.html | ||
| + | DirectoryIndex index.html | ||
| + | AddDefaultCharset utf-8 | ||
| + | allow from all | ||
| + | </Directory> | ||
| + | </Virtualhost> | ||
| + | </pre> | ||
| + | По пути /opt/ebs/web/nomoney нужно создать файл index.html со следующим содержимым: | ||
| + | <pre> | ||
| + | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
| + | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| + | <head> | ||
| + | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
| + | <title>Сообщение от провайдера::ExpertBilling</title> | ||
| + | </head> | ||
| + | <body> | ||
| + | <center><img src="provider_logo.png" alt="" /></center> | ||
| + | <h1 align="center">Уважаемый абонент.</h1> | ||
| + | <h1 align="center">На вашем счету закончились деньги. <a href="https://isp.net." target="_blank">"Веб-кабинет"</a></h1> | ||
| + | </body> | ||
| + | </html> | ||
| + | </pre> | ||
| + | |||
| + | Перезапустите Apache для того, чтобы изменения вступили в силу. | ||
| + | <pre> | ||
| + | /etc/init.d/apache2 restart | ||
| + | </pre> | ||
| + | 3. Настроим Firewall. Предположим, что 10.250.1.1 - IP адрес сервера с Apache, который мы настраивали пунктом выше. | ||
| + | Правила должны стоять в самом начале!!! | ||
| + | <pre> | ||
| + | /ip firewall filter add src-address=10.250.1.0/24 dst-address=10.250.1.1 action=accept | ||
| + | /ip firewall filter add src-address=10.250.1.1 dst-address=10.250.1.0/24 action=accept | ||
| + | /ip firewall filter add src-address-list=10.250.1.0/24 action=drop | ||
| + | </pre> | ||
| + | |||
| + | Настроим редирект всех HTTP запросов | ||
| + | <pre> | ||
| + | /ip firewall nat add chain=srcnat src-address=10.250.1.0/24 action=masquerade | ||
| + | /ip firewall nat add chain=dstnat src_address=10.250.1.0/24 protocol=tcp dst-port=80 action=dst-nat to-addresses=10.250.1.1 to-ports=81 | ||
| + | </pre> | ||
| + | |||
| + | Теперь при наступлении отрицательного баланса биллинг будет сбрасывать сессию абонента, а после переподключения выдавать IP адрес из созданного нами пула, все запросы с которого будут посылатся на сервер с apache. | ||
| + | |||
| + | Ограничением данного подхода является возможность его использования только в PPTP/L2TP/PPPOE тарифных планах. | ||
| + | |||
| + | == Скрипт импорта платежей == | ||
| + | |||
| + | Скрипт предназначен для импорта платежей из текстовых файлов формата CSV. | ||
| + | Скрипт находится по пути /opt/ebs/data/scripts/payments/process.py | ||
| + | Файл настроек находится по адресу /opt/ebs/data/scripts/payments/pattern.ini | ||
| + | |||
| + | Формат файла настроек | ||
| + | <pre> | ||
| + | [Belarusbank] | ||
| + | folder_in=Belarusbank/IN/ | ||
| + | folder_out=Belarusbank/OUT/ | ||
| + | folder_err=Belarusbank/ERR/ | ||
| + | file_mask=*.asb | ||
| + | exclude_mask=lan.* | ||
| + | separator=; | ||
| + | payment_type=BELARUSBANK_PAYMENT_IMPORT | ||
| + | encoding=cp855 | ||
| + | fieldnames=ACC;FIO;DATETIME;TIME;SUM;EMPTY;EMPTY;EMPTY;PID | ||
| + | datetime_fmt=%d/%m/%Y | ||
| + | time_fmt=%H:%M | ||
| + | |||
| + | [Webmoney] | ||
| + | folder_in=WebMoney/IN/ | ||
| + | folder_out=WebMoney/OUT/ | ||
| + | folder_err=WebMoney/ERR/ | ||
| + | file_mask=*.* | ||
| + | exclude_mask=r*.* | ||
| + | separator=; | ||
| + | payment_type=WEBMONEY_PAYMENT_IMPORT | ||
| + | fieldnames=DATETIME;ACC;SUM;EMPTY;EMPTY;PID;EMPTY;EMPTY;EMPTY;EMPTY | ||
| + | datetime_fmt=%d/%m/%Y %H:%M:%S | ||
| + | time_fmt= | ||
| + | encoding=utf-8 | ||
| + | </pre> | ||
| + | |||
| + | Описание настроек: | ||
| + | * '''folder_in''' путь к папке с текстовыми файлами CSV | ||
| + | * '''folder_out''' путь к папке с успешно обработанными файлами платежей | ||
| + | * '''folder_err''' путь к папке с обработанными файлами платежей, содержащими записи в неверном формате или ошибочную информацию | ||
| + | * '''file_mask''' - маска файлов платежей | ||
| + | * '''exclude_mask''' - маска файлов, подлежащих к исключению обработки | ||
| + | * '''separator''' - разделитель в файле csv | ||
| + | * '''payment_type''' - тип платежа. Для нового типа платежей нужно создать запись в таблице базы данных billservice_transactiontype, поместив в поле '''name''' текстовое описание платежа, а в поле '''internal_name''' - текстовую константу '''payment_type'''. | ||
| + | * '''fieldnames''' - формат файла csv. Поле DATETIME предназначено для даты совершения платежа, поле ACC для номера договора аккаунта, SUM - сума платежа, EMPTY - пустое или не имеющее значения поле, PID аналогично EMPTY, TIME - поле времени платежа, если дата и время разнесены по разным столбцам | ||
| + | * '''datetime_fmt''' - формат поля DATETIME. Возможные значения символов подстановки вы можете найти на этой странице http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior | ||
| + | * '''time_fmt''' формат поля TIME | ||
| + | * '''encoding''' кодировка файла CSV | ||
| + | |||
| + | '''Важно!!!''' Обращайте внимание на регистр символов в путях к папкам. | ||
| + | '''Обратите внимание''' В ранних версиях EBS 1.4 данный скрипт отсутствовал. Обратитесь к разработчикам за получением скрипта. | ||
Текущая версия на 10:54, 8 сентября 2012
Содержание
Скрипт рассылки сообщений о состоянии баланса
Для рассылки информации о балансе используется скрипт /opt/ebs/data/sendmail.py. Скрипт использует шаблон "Информационное письмо" сообщения о балансе, вид которого можно изменить в интерфейсе администратора. По-умочланию шаблон выглядит так:
---------------------------------------------------
Это сообщение сгенерировано биллинговой системой!
---------------------------------------------------
Здравствуйте, ${account.username}.
Уведомляем, что актуальный баланс Вашего лицевого счета составляет ${"%.2f" % account.ballance} руб. Размер кредита ${account.credit}.
Пожалуйста, пополните баланс во избежание блокировки.
---
${operator.organization}
Параметры работы скрипта настраиваются в конфиг-файле ebs_config.ini
[sendmail] log_type = logging log_file = log/sendmail_log log_level= 0 log_ident= ebs_sendmail subject = Provider information - тема письма use_tls = False - использовать TLS send_if_less = 5000 - пороговое значение баланса, ниже которого пользователь получит письмо host = smtp.gmail.com - адрес SMTP сервера host_user = SMTP имя пользователя host_password = пароль SMTP пользователя port = 25 SMTP порт сервера email_from = info@provider.com - с этого адреса будут слаться письма fail_silently = False - в случае ошибки продолжать отправку
Для того, чтобы рассылать уведомления в 00:00:00 каждого дня, нужно добавить в crontab следующую строку:
0 0 * * * /usr/bin/env python /opt/ebs/data/sendmail.py >>/opt/sendmail.log
Страница-заглушка
Вы можете настроить ExpertBilling так, что если у пользователя закончился баланс, то сервер доступа начнёт его перенаправлять на специальную страницу, где будет сказано об этом. Возможны 2 варианта настройки:
- через IPN действия;
- через гостевой VPN пул;
У каждого из этих методов есть свои достоинства и недостатки. Использование IPN действий невозможно при динамической выдаче VPN IP адресов абонентам, а гостевой VPN пул не охватывает IPN абонентов.
Настройка заглушки через IPN Действия
Для настройки заглушки необходимо:
1 Включить и настроить IPN действия для тарифного плана. Если вы используете не IPN тарифные планы, то необходимо также разрешить PPTP/PPPOE/DHCP подключение при отрицательном балансе и блокировках.
2 Настроить apache так, чтобы при запросе любой страницы он отдавал сообщение о том, что у пользователя закончились деньги.
3 Настроить файервол на сервере доступа.
Приступим. 1.
Команды сервера доступа, к которому привязан аккаунт должны быть такими:
Для VPN тарифных планов:
Включить субаккаунт:
/ip firewall address-list remove [find comment==blocked-$subacc_id]
Отключить субаккаунт:
/ip firewall address-list add list=blocked_users address=$subacc_vpn_ip_address comment=blocked-$subacc_id disabled=no
Для IPN тарифных планов:
Включить субаккаунт:
/ip firewall address-list remove [find comment==blocked-$subacc_id]
Отключить субаккаунт:
/ip firewall address-list add list=blocked_users address=$subacc_ipn_ip_address comment=blocked-$subacc_id disabled=no
Для использования данной возможности субаккаунту _ДОЛЖЕН_ быть назначен серер доступа в его профиле.
2. Для версии ниже 1.5(в 1.5 по-уомлчанию создаётся данная конфигурация и файл index.html) добавьте в /etc/apache2/sites-enabled/ файл vhost_blank.conf со следующим содержимым
Listen 81
<VirtualHost *:81>
ServerName 10.1.1.1
ServerAdmin webmaseter@isp.net
ErrorLog /var/log/apache2/nomoney_err.log
CustomLog /var/log/apache2/nomoney_access_log combined
DocumentRoot /opt/ebs/web/nomoney
<Directory "/opt/ebs/web/nomoney">
AllowOverride All
Options FollowSymlinks Includes
ErrorDocument 404 /index.html
DirectoryIndex index.html
AddDefaultCharset utf-8
allow from all
</Directory>
</Virtualhost>
По пути /opt/ebs/web/nomoney нужно создать файл index.html со следующим содержимым:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Сообщение от провайдера::ExpertBilling</title> </head> <body> <center><img src="provider_logo.png" alt="" /></center> <h1 align="center">Уважаемый абонент.</h1> <h1 align="center">На вашем счету закончились деньги. <a href="https://isp.net." target="_blank">"Веб-кабинет"</a></h1> </body> </html>
Перезапустите Apache для того, чтобы изменения вступили в силу.
/etc/init.d/apache2 restart
3. Настроим Firewall. Предположим, что 10.1.1.1 - IP адрес сервера с Apache, который мы настраивали пунктом выше. Правила должны стоять в самом начале!!!
/ip firewall filter add src-address-list=internet_users dst-address=10.1.1.1 action=accept /ip firewall filter add src-address=10.1.1.1 dst-address-list=internet_users action=accept /ip firewall filter add src-address-list=blocked_users action=drop
Настроим редирект всех HTTP запросов
/ip firewall nat add chain=srcnat src-address-list=blocked_users action=masquerade /ip firewall nat add chain=dstnat protocol=tcp dst-port=80 src-address-list=blocked_users action=dst-nat to-addresses=10.1.1.1 to-ports=81
Теперь при наступлении отрицательного баланса биллинг будет посылать на сервер доступа команду на добавление VPN IP адреса субаккаунта в адрес-лист blocked_users, все запросы на 80 порт которого будут редиректиться на сервер с apache, который по указанному адресу будет показывать нашу заглушку.
Настройка заглушки через гостевой VPN пул
Гостевой VPN служит для динамической выдачи VPN IP адресов, в случае если абонент заблокирован по причине отрицательного баланса или наличия других блокировок Для настройки заглушки необходимо:
1 Создать VPN пул через интерфейс администратора. В пуле нужно указать сеть, которая не будет пересекаться ни с одной из ваших существующих сетей.
2 Указать созданный VPN пул в тарифном плане пользователя
2 Настроить apache так, чтобы при запросе любой страницы он отдавал сообщение о том, что у пользователя закончились деньги.
3 Настроить файервол на сервере доступа.
Приступим. 1. Создайте VPN пул через меню Справочники->IP пулы
2. Укажите выбранный пул в тарифном плане
3. Добавьте в /etc/apache2/sites-enabled/ файл vhost_blank.conf со следующим содержимым
Listen 81
<VirtualHost *:81>
ServerName 10.250.1.1
ServerAdmin webmaseter@isp.net
ErrorLog /var/log/apache2/nomoney_err.log
CustomLog /var/log/apache2/nomoney_access_log combined
DocumentRoot /opt/ebs/web/nomoney
<Directory "/opt/ebs/web/nomoney">
AllowOverride All
Options FollowSymlinks Includes
ErrorDocument 404 /index.html
DirectoryIndex index.html
AddDefaultCharset utf-8
allow from all
</Directory>
</Virtualhost>
По пути /opt/ebs/web/nomoney нужно создать файл index.html со следующим содержимым:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Сообщение от провайдера::ExpertBilling</title> </head> <body> <center><img src="provider_logo.png" alt="" /></center> <h1 align="center">Уважаемый абонент.</h1> <h1 align="center">На вашем счету закончились деньги. <a href="https://isp.net." target="_blank">"Веб-кабинет"</a></h1> </body> </html>
Перезапустите Apache для того, чтобы изменения вступили в силу.
/etc/init.d/apache2 restart
3. Настроим Firewall. Предположим, что 10.250.1.1 - IP адрес сервера с Apache, который мы настраивали пунктом выше. Правила должны стоять в самом начале!!!
/ip firewall filter add src-address=10.250.1.0/24 dst-address=10.250.1.1 action=accept /ip firewall filter add src-address=10.250.1.1 dst-address=10.250.1.0/24 action=accept /ip firewall filter add src-address-list=10.250.1.0/24 action=drop
Настроим редирект всех HTTP запросов
/ip firewall nat add chain=srcnat src-address=10.250.1.0/24 action=masquerade /ip firewall nat add chain=dstnat src_address=10.250.1.0/24 protocol=tcp dst-port=80 action=dst-nat to-addresses=10.250.1.1 to-ports=81
Теперь при наступлении отрицательного баланса биллинг будет сбрасывать сессию абонента, а после переподключения выдавать IP адрес из созданного нами пула, все запросы с которого будут посылатся на сервер с apache.
Ограничением данного подхода является возможность его использования только в PPTP/L2TP/PPPOE тарифных планах.
Скрипт импорта платежей
Скрипт предназначен для импорта платежей из текстовых файлов формата CSV. Скрипт находится по пути /opt/ebs/data/scripts/payments/process.py Файл настроек находится по адресу /opt/ebs/data/scripts/payments/pattern.ini
Формат файла настроек
[Belarusbank] folder_in=Belarusbank/IN/ folder_out=Belarusbank/OUT/ folder_err=Belarusbank/ERR/ file_mask=*.asb exclude_mask=lan.* separator=; payment_type=BELARUSBANK_PAYMENT_IMPORT encoding=cp855 fieldnames=ACC;FIO;DATETIME;TIME;SUM;EMPTY;EMPTY;EMPTY;PID datetime_fmt=%d/%m/%Y time_fmt=%H:%M [Webmoney] folder_in=WebMoney/IN/ folder_out=WebMoney/OUT/ folder_err=WebMoney/ERR/ file_mask=*.* exclude_mask=r*.* separator=; payment_type=WEBMONEY_PAYMENT_IMPORT fieldnames=DATETIME;ACC;SUM;EMPTY;EMPTY;PID;EMPTY;EMPTY;EMPTY;EMPTY datetime_fmt=%d/%m/%Y %H:%M:%S time_fmt= encoding=utf-8
Описание настроек:
- folder_in путь к папке с текстовыми файлами CSV
- folder_out путь к папке с успешно обработанными файлами платежей
- folder_err путь к папке с обработанными файлами платежей, содержащими записи в неверном формате или ошибочную информацию
- file_mask - маска файлов платежей
- exclude_mask - маска файлов, подлежащих к исключению обработки
- separator - разделитель в файле csv
- payment_type - тип платежа. Для нового типа платежей нужно создать запись в таблице базы данных billservice_transactiontype, поместив в поле name текстовое описание платежа, а в поле internal_name - текстовую константу payment_type.
- fieldnames - формат файла csv. Поле DATETIME предназначено для даты совершения платежа, поле ACC для номера договора аккаунта, SUM - сума платежа, EMPTY - пустое или не имеющее значения поле, PID аналогично EMPTY, TIME - поле времени платежа, если дата и время разнесены по разным столбцам
- datetime_fmt - формат поля DATETIME. Возможные значения символов подстановки вы можете найти на этой странице http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior
- time_fmt формат поля TIME
- encoding кодировка файла CSV
Важно!!! Обращайте внимание на регистр символов в путях к папкам. Обратите внимание В ранних версиях EBS 1.4 данный скрипт отсутствовал. Обратитесь к разработчикам за получением скрипта.



