Вспомогательные скрипты и утилиты

Материал из ExpertBilling
Перейти к: навигация, поиск

Скрипт рассылки сообщений о состоянии баланса

Для рассылки информации о балансе используется скрипт /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/scripts/getintdata.py >>/opt/getintdata.log


Скрипт импорта платежей

Скрипт предназначен для импорта платежей из текстовых файлов формата 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 данный скрипт отсутствовал. Обратитесь к разработчикам за получением скрипта.