Это старая версия документа.
Cards
Платформа для работы с картами клиетов и картами оплат.
Возможности
- Генерация универсальных карт с логином и паролем. Данной картой можно как пополнять интернет так пользоваться как независемым аккаунтом.
- Генерация аккаунтов пользователей.
- Генерация аккаунтов пользователей из файла с данными о них.
- Контроль перебора карт и ошибочных вводов.
- Учёт дилеров и отчёты о продажах.
- Начисление процента дилеру от продаж.
- Печать карт в формате PDF. Для данной функции нужно установить модуль Perl PDF::API2
- Експорт карт в XML, CSV
- Выполнение внешних программ после авторизации карточки
Использование
Карта платежей используется для пополнения счета клиента. После успешного пополнения, карте присваивается состояние USE
(Использовано).
Карта с прикреплёнными сервисами (универсальные карты) кроме сумы пополнения содержит логин и пароль для использования сервиса, например Internet. После покупки карты клиент может воспользоваться сервисом карты для входа в систему или просто пополнить имеющийся счёт. После успешного пополнения счёта сервисный акаунт анулируется и эти изменения фиксируются в сервисном журнале / Настройки / История/
. Если пользователь уже начал использовать сервис карты, то дальнейшее пополнение используя карту невозможно.
Screenshots
Установка
Создать таблицы в базе.
# mysql -D abills < db/Cards.sql # cp Cards.pm /usr/abills/Abills/mysql
Подключение модуля. abills/libexec/config.pl
@MODULES = ( 'Cards' );
Настройка
Параметры конфигурации модуля: abills/libexec/config.pl
$conf{CARDS_BRUTE_LIMIT}=5; | Количество неправильных попыток перед блокировкой пользователя. По умолчанию: 5. |
---|---|
$conf{CARDS_BRUTE_CLEAN_PERIOD}=2; | Количество дней через которое удаляется запись о неправильно вводе пин кода. По умолчанию 2 дня. |
$conf{CARDS_PAYMENT_PIN_LENGTH}=8; | Длина пинкода. По умолчанию 8 символов. |
$conf{CARDS_PIN_SYMBOLS}='0123456789'; | Символы используемые для генерации PIN кода. По умолчанию: 0123456789. |
$conf{CARDS_SHOW_PINS}=1; | Показывать ПИН-коды карточек администратору |
$conf{CARDS_LOGIN_PASSWD_SAME}=1; | Генерировать одинаковые логины и пароли для карточек с сервисами. Логины генерируются в произвольном порядке без учёта правил формирования логинов в форме заведения универсальных карт |
$conf{CARDS_PAYMENTS_EXTERNAL}='/usr/abills/misc/cards_external.sh'; | Запуск внешних программ после успешного пополнения счёта. |
$conf{CARDS_NUMBER_LENGTH}=11; | длина номера карты. По умолчанию 11 символов |
$conf{CARDS_PIN_ONLY}=1; | Использовать только пин для пополнения |
$conf{CARDS_SKIP_COMPANY}=0; | Запрет пополнения пользователям прикреплённым к компаниям |
Дилеры
Добавление дилера. Любой пользовательский акаунт может получить расширение дилер. Для этого нужно включить в акаунте эту функцию. / Customers/ Logins/ Information/
Tarif plan | Тарифный план по которому будут сниматься деньги с дилера за сгенерированные карточки |
---|---|
Percentage | Процентная ставка от продаж карт |
Disable | Блокировать |
Registration | Дата регистрации |
Comments | Комментарии |
Список дилеров
/ Customers/ Dealers/
ID | ID Дилера |
---|---|
Name | Название |
Address | Адрес |
Registration | Дата регистрации |
Percentage | Процентная ставка дилера |
State | Состояние активности |
Count | Общее количество полученных карт |
Enable | Остаток непроданных карт |
Тарифные планы
/ Система/ Интернет карточки/ Дилеры Тарифные планы/
Название: | Название |
---|---|
Процентная ставка: | Процентная ставка дилера от проданных каточек |
Цена операции: | Сума которая снимается с дилера при пополнении карточкой. Указывается в процентах, а также можно использовать регулярные выражения Регулярные выражения: (COUNT>10=PRICE:100; TOTAL_SUM>100=PRICE:20;) |
Вид оплаты: | Предоплата послеоплата (карточки выдаются внезависимости от его депозита) оплата после активации с дилера сума снимается поле активации карточки абонентом |
Активации: | Сума активации ТП |
Изменить: | Сума которая снимается при изменении ТП |
Кредит: | Кредит |
Минимальная денежная наработка: | Минимальная сума на которую нужно продать карточек. Если сума не наработана систма дополнительно её до снимает |
Сервер доступа: | |
Бонус : |
Генерация Универсальных Карт (с сервисами)
Меню генерации универсальных карт / Клиенты/ Логины/ Internet/ Интернет карточки/
Login | Информация о логине |
---|---|
Prefix | Префикс логина |
Begin | Первый номер логина. Следует за префиксом |
Length: | Длина логина |
File: | Получить список логинов и паролей из файла |
Password | Пароль |
Symbols: | Символы, которые используются при генерации пароля |
Size: | Длина пароля |
Универсальные карты генерируются по аналогии с формой создания клиентов.
Описание процесса импорта
В системе есть возможность загрузить логины, пароли и другую сопутствующую информацию о пользователях из текстового файла. Очень удобно при миграции из других биллинговых систем.
Влияющие параметры из libexec/config.pl
# Длина пароля не менее $conf{PASSWD_LENGTH}=6; # Максимальная длина логина # По умолчанию 16 но не более 20 $conf{MAX_USERNAME_LENGTH}=15; # В логине возможно использовать только # По умолчанию маленькие латинские буквы, цифры и символ подчёркивания(только не первым символом) $conf{USERNAMEREGEXP}="^[a-z0-9_][a-z0-9_-]*\$";
После подключения модуля Cards появляется
меню / Customers/ Users/ Internet / Internet cards/
Все значения, явно не указанные в файле для импорта, берутся из полей на данной странице,
внимательно проверьте их перед нажатием кнопки «Create».
Обратите внимание, что если указана дата активации (не «0000-00-00»), то, в зависимости
от тарифного плана, будут сделаны все необходимые расчёты с соответствующим изменением депозитов.
Формат файла логинов
[LOGIN][tab][PASSWORD][tab][EXPRESION…]
Разделитель для данных символ табуляции.
LOGIN | Логин |
---|---|
PASSWORD | Пароль. Если в поле PASSWORD прочерк «-» система автоматически генерирует пароли. |
EXPRESSION | Дополнительные параметры. Формат НАЗВАНИЕ=«ЗНАЧЕНИЕ». |
Дополнительные параметры для модуля 'Dv'
После подключения модуля Cards появляется меню / Customers/ Users/ Internet/ Internet carts/
Информация о акаунте
1.ACTIVATE | Дата активации аккаунта |
---|---|
1.EXPIRE | Дата окончания аккаунта |
1.COMPANY_ID | АйДи компании |
1.CREDIT | Кредит |
1.CREDIT_DATE | Дата завершения кредита |
1.GID | Ид группы |
1.REDUCTION | Скидка |
1.DISABLE | Статус логина |
1.UID | UID абонента. По умолчанию заполняется автоматически. Явно использовать только в крайнем случае |
Персональная информация
3.ADDRESS_BUILD | Номер дома |
---|---|
3.ADDRESS_FLAT | Номер квартиры |
3.ADDRESS_STREET | Улица |
3.ADDRESS_FULL | Полный адрес при импорте с систем где адрес записывается одной стройкой. |
3.COMMENTS | Комментарии |
3.CONTRACT_ID | Номер контракта |
3.CONTRACT_DATE | Дата контракта |
3.EMAIL | E-mail адрес |
3.FIO | Имя отчество |
3.PHONE | Телефон |
3.PASPORT_NUM | Номер паспорта |
3.PASPORT_DATE | Дата выдачи паспорта |
3.PASPORT_GRANT | Учреждение,которое выдало паспорт |
3.ZIP | индекс |
3.CITY | Город |
Для добавления дополнительных информационных полей указывается номер 3 и название поля в базе заглавными буквами.
Пример:
3._SECOND_ADDRESS
Internet
4.CID | Caller ID |
---|---|
4.FILTER_ID | АйДи фильтра |
4.IP | IP адрес |
4.NETMASK | Маска сети |
4.SIMULTANEONSLY | Одновременных соединений |
4.SPEED | Скорость |
4.TP_ID | АйДи тарифного плана |
4.CALLBACK | Флаг активности CallBack |
4.STATUS | Статус Сервиса 0 - Активно 1 - Отключено 2 - Не активизирован 3 - Приостановление 4 - Отключено: Неуплата 5 - Cлишком маленький депозит 6 - Заблокирован из за вирусов |
4.PASSWORD | Дополнительный пароль сервиса |
4.DV_LOGIN | Дополнительный логин сервиса |
4.DV_SKIP_FEE=1 | Не снимать начисление абон. платы при импорте |
Если не указать серию при импорте через меню (/ Customers/ Logins/ Internet/ Internet cards/) то для заведённых аккаунтов начислится абонплата, если же указать серию абон. плата не будет начислена
4.EXPIRE | Дата завершения услуги |
---|
Оплата
5.SUM | Сума «+» оплата, «-» снятие денег. Разделитель дробной части точка |
---|---|
5.DESCRIBE | Описание |
5.ER | Курс обмена |
5.EXT_ID | Внешний АйДи |
5.DATE | Дата произведения оплаты «0000-00-00 00:00:00» или «0000-00-00» |
5.EXT_BILL_DEPOSIT | Сума дополнительного депозита |
E-mail (Если подключён модуль Email к системе)
6.USERNAME | Имя логина для почтового ящика (Пример: USERNAME@DOMAIN_NAME) |
---|---|
6.DOMAINS_SEL | ID домена |
6.COMMENTS | Комментарий |
6.MAILDIR | Каталог, в который будет складываться почта USERNAME@DOMAIN_NAME |
6.MAILS_LIMIT | Лимит на количество писем |
6.BOX_SIZE | Лимит на размер почтового ящика (в байтах) |
6.ANTIVIRUS | Активизировать антивирус для данного почтового ящика |
6.ANTISPAM | Активизировать фильтр спама для данного почтового ящика |
6.DISABLE | Заблокировать ящик. Сервер не будет принимать почту для данного ящика и сообщать о его блокировке. |
6.EXPIRE | Время истечения действия акаунта |
6.PASSWORD | Пароль на почтовый ящик |
Msgs (Если подключён модуль Msgs к системе)
7.UID | UID |
---|---|
7.SUBJECT | Тема сообщения |
7.MESSAGE | Сообщение |
Bonus (Если подключён модуль Bonus к системе)
8.ACTION_TYPE | Тип операции 0 - пополнение 1 - снятие |
---|---|
8.EXT_BILL_ID | Номер дополнительного счета. Если не указывать автоматически подставляется |
8.DESCRIBE | Описание |
8.METHOD | Тип оплаты |
8.EXT_ID | Дополнительный идентификатор операции |
8.INNER_DESCRIBE | Внутриние описание операции |
8.EXPIRE | Время истечения операции |
Dhcphosts (Если подключён)
11.IP | |
---|---|
11.HOSTNAME | |
11.NETWORK | |
11.MAC | |
11.DISABLE | |
11.COMMENTS | |
11.PORTS | |
11.VID | |
11.SERVER_VID | |
11.NAS_ID | |
11.OPTION_82 | |
11.BOOT_FILE | |
11.NEXT_SERVER | |
11.IPN_ACTIVATE |
Дополнительные параметры
SKIP_ERRORS=1 | игнорировать ошибки, возникшие при добавлении акаунтов и добавлять следующие. По умолчанию загрузка останавливается на первой случившейся ошибке |
---|
Пример файла логинов. Переносятся логин, пароль, сума и ФИО:
petrov pasrddsword 5.SUM="10" 3.FIO="Petrov A V" test testpassword 5.SUM="2.5" 3.FIO="THis Is test" test2 test2pasrdds 5.SUM="6.0" 3.FIO="THis Is test2 user"
Управления картами
/ System configuration/ Card System/ Internet carts/
Состояние карт
ENABLE | Карта активна |
---|---|
DISABLE | Карта блокирована |
USED | Карта использована |
DELETED | Удалён сервис карты но карта ещё активна для пополнения |
RETURNED | Карта возвращена дилером |
Дата продажи карты
SOLD | Время продажи карты дилером. Используется при начислении комиссии дилеру от проданных карт |
---|
После изменения состояния карты или передачи её дилеру в поле Administrator вносятся данные об администраторе, сделавшем последние действия, и заносятся данные в системный журнал (/System configuration/ History/).
Список Серий
Serial | Серия |
---|---|
Count | Количество карт |
Sum | Общая сума на которую выписаны карты |
Enable | Активных карт (Не активизированных) |
Expire | Время окончания действия карты |
Dillers | Количество карт отправленных дилерам |
Added | Дата создания серии |
Administrators | Администратор, создавший серию |
Список Карт
Number | Номер карты |
---|---|
Serial | Серия карты |
Login | Логин. Если карта с прикреплённым сервисом в поле отображается логин пользователя сервисом. Для карт пополнения это поле не заполнено. |
Sum | Сума для пополнения на карте |
Status | Статус карты. Статусы: Enable – Активна Disable – Блокирована Used – Использована Deleted - Уничтожен логин карты Returned - Возвращена |
Expire | Дата окончания действия карты. По истечению этой даты карта считается нерабочей. |
Added | Дата генерации карты |
Dillers | Дилер |
Date | Дата изменения статуса карты |
Sold | Дата продажи карты |
Administrators | Администратор, создавший карту |
PIN | ПИН-код карты. Для карты с сервисом это пароль. Колонка отображается только, если включена опция $conf{CARDS_SHOW_PINS} |
Печать и экспорт карт
В системе предусмотрена функция печати карточек оплаты и формирование шаблонов в формате PDF. Для работы с PDF форматом нужно установить Perl модуль .
Печать осуществляется на лист размером А4. Куда можно разместить 10 карточек.
За печать карточек отвечают следующие шаблоны:
- cards_print.tpl - печать в HTML формате
- cards_print.pdf - PDF шаблон
- cards_print.dsc - файл разметки для PDF шаблона
При формирование печатной странички можно использовать следующие переменные шаблона.
SERIAL_0 | Серийный номер |
---|---|
LOGIN_0 | Логин |
PIN_0 | Пин или пароль карточки |
TP_0 | Тарифный план для универсальной карточки |
SUM_0 | Цена карточки |
EXPIRE_0 | Дата окончания действия карточки |
AGE_0 | Время дествия карточки с момента первого входа используется только для универсальных карт |
TIME_LIMIT_0 | Предоплаченное время работы по данной карточке, только для универсальных карт. Время указывается в часах. |
Номер в конце переменно указывает место размещение данных по карточке на листе.
0 | 1 |
2 | 3 |
4 | 5 |
6 | 7 |
8 | 9 |
Также можно экспортировать уже созданные карточки в формат CSV. В файл экспорта заносятся следующие поля разделённые табуляцией: SERIAL LOGIN, PASSWORD/PIN, TARIF_PLAN, SUM, EXPIRE, AGE, TIME_LIMIT
Интерфейс Дилера
(Поставляется как дополнение к карточному модулю)
Возможности
- Генерация карт платежей произвольного номинала
- Дилер имеет возможность генерировать карты на суму своего депозита (депозит + кредит).
- Фомирования чеков для чековых принтеров (Например: D-Link DSA-3100P)
- Вывод отчётов для дилера
Установка
# cp dillers.cgi /usr/abills/cgi-bin/
После успешной установки интерфейс доступен за адресом
https://your.host:9443/dillers.cgi
Работа с системой
Для создания дилера нужно зайти в меню
/ Customers/ Logins/ Information/ Dillers/ и активизировать дилерский аккаунт.
Терминальный сервер
Также в интерфейс дилера встроен терминальный сервер который разрешает подключать к системе внешние программы для генерации карточек.
Протокол
- Проверка активности сервера:
/dillers.cgi?cmd=ping
ответ
pong
- Пополнение счета:
/dillers.cgi?cmd=pay&term=1234567&pswd=password&date=29.09.2010&time=10:55&sum=15
переменные
term | ID терминалов (Указывается в опции $conf{CARDS_TERMINAL_IDS}) |
pswd | пароль терминала (Указывается в опции $conf{CARDS_TERMINAL_PASSWD} |
data | дата пополнения |
time | время пополнения |
sum | сумма пополнения |
ответ
err=no&series=14351431&pin=76543
err | ошибка пополнения. no - Выполнено без ошибок ERR_WRONG_SUM - неправильно указана сума EXIST - карточка уже существует ERROR - другая ошибка WRONG_TERMINAL_ID - Неправильный ID терминала WRONG_PASSWORD - Указана неправильный пароль в переменной $conf{CARDS_TERMINAL_PASSWD} DILLER_NOT_EXIST - Не указан дилер системы или не существует проверте опцию $conf{CARDS_TERMINAL_UID} SMALL_DEPOSIT - У дилера слишком мало средств для создания карт |
series | Серия |
pin | пин |
Переменные настройки
$conf{CARDS_TERMINAL_IP}='192.168.1.102'; | IP адреса терминалов пополнения указываются через запятую |
$conf{CARDS_TERMINAL_IDS}='1234567:212:password,12443:322:password'; | ID:UID:PASSWORD ID терминалов оплаты указываются через запятую UID абонента PASSWORD - пароль |
Устаревшие опции
$conf{CARDS_TERMINAL_PASSWD}='password'; | Пароль авторизации терминалов |
$conf{CARDS_TERMINAL_UID}='4810'; | UID дилера системы через которого будут проходить операции выписки карт пополнения |
—
Отчёты
/ Reports/ Cards/
Формирование отчётов по работе карточной системы
Перебор PIN кодов
В системе ведётся контроль перебора пин кодов если количество неправильный вводов абонентом больше значения переменной $conf{CARDS_BRUTE_LIMIT} (По умолчанию 5) система блокирует ввод данных по карточкам. Блокировка длится период указанный в переменной $conf{CARDS_BRUTE_CLEAN_PERIOD} (по умолчанию 2 дня). Блокировка ввода карточки производится только если такаая картчока уже есть в системе и пользователь исчерпал количество попыток
Журнал блокировок можно посмотреть в меню
/ System configuration/ Internet cards/ Brute Attack/
Список ошибок пользовательского интерфейса
600 | Непредвиденная ошибка. Обратитесь в службу поддержки |
---|---|
601 | Попытка перебора пин кодов карточки |
602 | Время действия карточки закончилось |
603 | Карточка не существует |
604 | Остаток на карточке не достаточный для пополнения |
605 | Неправильные параметры ввода карточки |
606 | Карточка уже использована |
607 | Карточка уже использована. Попытка DDos |
608 | По данной карточке уже произведена оплата |
609 | Ошибка на стадии зачисления средств на счёт |