**''Документация по модулю Cards и принадлежащим к нему страницам перенесена в Confluence''** [[http://abills.net.ua:8090/display/AB/Cards]] =====Cards===== Платформа для работы с картами клиетов и картами оплат.\\ ====Возможности==== * Генерация универсальных карт с логином и паролем. Данной картой можно как пополнять интернет так пользоваться как независемым аккаунтом. * [[abills:docs:manual:admin:cards:cards_add|Генерация карт платежей]] * Генерация аккаунтов пользователей. * Генерация аккаунтов пользователей из файла с данными о них. * Контроль перебора карт и ошибочных вводов. * [[abills:docs:manual:admin:cards:cards_dillers_tp|Учёт дилеров и отчёты о продажах]]. * Начисление процента дилеру от продаж. * Печать карт в формате PDF. Для данной функции нужно установить модуль [[abills:docs:manual:soft:PDF_API2|Perl PDF::API2]] * Експорт карт в XML, CSV * Выполнение внешних программ после авторизации карточки \\ ====Использование==== Карта платежей используется для пополнения счета клиента. После успешного пополнения, карте присваивается состояние ''USE'' (Использовано).\\ Карта с прикреплёнными сервисами (универсальные карты) кроме сумы пополнения содержит логин и пароль для использования сервиса, например Internet. После покупки карты клиент может воспользоваться сервисом карты для входа в систему или просто пополнить имеющийся счёт. После успешного пополнения счёта сервисный акаунт анулируется и эти изменения фиксируются в сервисном журнале ''/ Настройки / История/''. Если пользователь уже начал использовать сервис карты, то дальнейшее пополнение используя карту невозможно. ====Screenshots==== **Администрирование карт пополнения счета** \\ {{:abills:docs:modules:cards:cards_main.png?800|Администрирование карт пополнение}} \\ **Форма оплаты** \\ {{:abills:docs:modules:cards:user.png?800|{{:abills:docs:modules:cards:user.png|Форма оплаты}} \\ Генерация аккаунтов для [[abills:docs:modules:dv:ru|Dv]] модуля \\ {{:abills:docs:modules:cards:dv.png?300|Генерация аккаунтов для Dv модуля}} \\ ====Установка==== Создать таблицы в базе. # mysql -D abills < db/Cards.sql # cp Cards.pm /usr/abills/Abills/mysql Подключение модуля. **abills/libexec/config.pl** @MODULES = ( 'Cards' ); ====Настройка==== Параметры конфигурации модуля: **abills/libexec/config.pl** **Начиная с версии 0.77.60 вместо опции //$conf{CARDS_SHOW_PINS}// используются права администратора(''пункт 5.9. Показать PIN Карточки пополнения'').** ^$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; | Запрет пополнения пользователям прикреплённым к компаниям | ====Генерация Универсальных Карт (с сервисами)==== Меню генерации универсальных карт **/ Клиенты/ Логины/ 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 | Дополнительные параметры. Формат НАЗВАНИЕ="ЗНАЧЕНИЕ". | ==Дополнительные параметры для модуля 'Internet'== После подключения модуля **Cards** появляется меню **/ Customers/ Users/ Internet/ Internet carts/** **Информация о акаунте** ^1.ACTIVATE | Дата активации аккаунта | ^1.EXPIRE | Дата окончания аккаунта | ^1.COMPANY_ID | АйДи компании | ^1.CREDIT | Кредит | ^1.CREDIT_DATE | Дата завершения кредита | ^1.GID | Ид группы | ^1.REDUCTION | Скидка | ^1.REDUCTION_DATE| Дата скидки | ^1.DISABLE | Статус логина | ^1.REGISTRATION | Дата регистрации абонента | ^1.UID | UID абонента. По умолчанию заполняется автоматически. Явно использовать только в крайнем случае | **Персональная информация** ^3.ADDRESS_BUILD | Номер дома | ^3.ADDRESS_FLAT | Номер квартиры | ^3.ADDRESS_STREET | Улица | ^3.ADDRESS_FULL | Полный адрес при импорте с систем где адрес записывается одной стройкой. | ^3.COMMENTS | Комментарии. Если комментарий многострочный его нужно записывать в одну строку через \n | ^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.SKIP_EMAIL_CHECK=1 | Пропускать проверку емейл | Для добавления дополнительных информационных полей указывается номер 3 и название поля в базе заглавными буквами.\\ **Пример:**\\ 3._SECOND_ADDRESS \\ **Internet+** ^4.CID |Caller ID| ^4.FILTER_ID | АйДи фильтра | ^4.IP | IP адрес | ^4.NETMASK | Маска сети | ^4.SIMULTANEONSLY | Одновременных соединений | ^4.SPEED | Скорость | ^4.TP_ID | TP_ID тарифного плана (внутрений номер) | ^4.TP_NUM | Номер тарифного плана, если данного тарифного плана нет в системе при импорте он создается с именем "Тарифный план: %TP_NUM%" | ^4.STATUS | Статус Сервиса \\ 0 - Активно \\ 1 - Отключено \\ 2 - Не активизирован \\ 3 - Приостановление \\ 4 - Отключено: Неуплата \\ 5 - Cлишком маленький депозит \\ 6 - Заблокирован из за вирусов | ^4.PASSWORD | Дополнительный пароль сервиса | ^4.LOGIN | Дополнительный логин сервиса | ^4.INTERNET_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 ====Пополнение карточкой с административного интерфейса==== - переходите на абонента - раздел **Оплаты** - слева в меню **Карточки пополнения** {{:abills:docs:modules:cards:cards_admin_add.png?nolink|}} ====Интерфейс Дилера==== (Поставляется как дополнение к карточному модулю) **Возможности**\\ - Генерация карт платежей произвольного номинала - Дилер имеет возможность генерировать карты на суму своего депозита (депозит + кредит). - Фомирования чеков для чековых принтеров (Например: 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 | Ошибка на стадии зачисления средств на счёт |