Модуль платежей. Разрешает автоматически зачислять деньги с разных платёжных систем.
Table of Contents |
---|
Возможности
- Автоматически зачислять деньги на счёт пользователя без участия оператора
- Уведомление администратора о поступлениях платежей.
- Уведомление пользователя о получении платежа.
- Ведение журнала платежей с детальной информацией о платежах.
- Создание отчёта платежей.
- Блокирования/разрешения уведомлений о платеже для определенных только IP адресов. Уведомление администратора о не санкционируемых операциях.
- Зачисление с Visa/Master карт.
- Зачисления через терминалы оплаты.
- Загрузка платежей с файла(Банковские выписки).
- Курсы Валют.
- Запуск команд перед/после оплатой.
- Разделение платежей по группам пользователей
- Список платежных систем
- Банковские выписки
- Групповые снятия денег
- Периодическая проверка платежей
- Тестирование платежных систем
- Терминалы для оплаты
- Внешние команды для оплаты
- Настройка модуля
С чего начать?
Надо подписать договор с платежной системой.
Получить протокол (опционально) взаимодействия API.
Получить ключи от процессинга (например, логин, пароль, номер мерчанта в платежной системе).
Купить и настроить модуль платежной системы в ABillS.
Принимать платежи.
Типы внешних платежей
Тип 1 - Портал абонента: пользователь оплачивает за услуги непосредственно со своего веб-кабинета используя виртуальные платёжные системы (Webmoney, Yandex деньги) или пластиковые карты Visa/Master Cards.
1) После входа в личный кабинет пользователь переходит в меню Денежные операции>Пополнение счёта
, вводит суму пополнения, выбирает систему оплаты и нажимает кнопку дальше
2) Система переносит пользователя на страницу подготовленной оплаты с данными платежа
3) Если все данные верны пользователь нажимает кнопку оплатить и переносится на странице проведение платежа системы оплаты которую он выбрал
4) После успешного совершения платежа пользователя возвращает назад на страницу личного кабинета с информацией что платёж был зачислен успешно
5) Если во время платежа произошла ошибка пользователя также возвращает на страницу личного кабинета и предупреждает повторно об ошибке пополнения
Тип 2 - Терминалы оплаты: пользователь оплачивает за услуги с терминала платежей. Терминал платежей через обработчик paysys_check.cgi передает данные в биллинг.
1) Пользователь подходит к терминалу и выбирает провайдера
2) Вводит свой логин или UID (или любой другой параметр указанный в настройке платёжной системы в биллинге). Терминал идентифицирует абонента, показывает его ФИО и остаток на счету.
3) Пользователь пополняет счет. На протяжении 1-2 минут деньги появляются на счету и биллинг активизирует услуги.
Тип 3 - Работа с выписками: пользователь оплачивает за услуги в банке. Средства вносятся администратором или автоматически через консоль (FTP, POP3, file)
При оплате в систему билинга вносятся следующие данные:
Журнал платежей
Идентификатор платежа
Сума платежа
Дата и время платежа
Платёжная системы
Журнал внешних платежей
Идентификатор платежа
Сума платежа
Дата и время платежа
Платёжная системы
IP адрес откуда пришёл платёж
Тело самого запроса
Статус транзакции
Типы пополнений
После версии 0.78.30 используется новая схема подключения платежных систем.
Подключение модуля
Code Block | ||||
---|---|---|---|---|
| ||||
@MODULES = ( 'Paysys' ); # Включение меню финансовых операций. $conf{user_finance_menu}=1; #Включение новой схемы модуля Paysys. $conf{PAYSYS_NEW_SCHEME}=1; |
Настройка работы с базой данных и создание таблиц:
Code Block | ||
---|---|---|
| ||
mysql --default-character-set=utf8 -D abills < db/Paysys.sql -p cp Paysys.pm /usr/abills/Abills/mysql |
Дополнительные модули платёжных систем копируются в папку /usr/abills/Abills/modules/Paysys/systems.
Установка агента получения (чекера) платежей. Платёжные системы отправляют на чекер данные об оплате, чекер идентифицирует систему, по IP адресу с которого идёт запрос, и заносит средства на счет. Если чекер не может идентифицировать системы он пишет Error: Unknown payment system.
Code Block | ||
---|---|---|
| ||
cd /usr/abills/cgi-bin/ ln -s ../Abills/modules/Paysys/paysys_check.cgi paysys_check.cgi |
Отслеживание ошибок
Для включение режима отладки нужно в конфигурационном файле включить опцию $conf{PAYSYS_DEBUG}=1; (Включить лог отладки для Paysys модуля)
Лог ведётся в файле /usr/abills/var/log/paysys_check.log.
По данному файлу можно отследить были ли подтверждения оплаты со стороны платёжной системы. Если не можете найти в данном файле подтверждения о платеже. Скорее всего система не отправила Вам его. Чтобы быть полностью уверенным что платёжная система не отправляет подтверждение посмотрите в файл логов веб сервера на наличие обращений от платёжной системы к вашему билингу
# grep paysys_check.cgi /var/log/httpd/abills-access_log
если обращения были вы видите следующие строки
192.168.1.4 - !- [04/Jun/2014:07:33:38 +0000] "GET /paysys_check.cgi HTTP/1.1" 200 1678
Настройки конфигурационного файла
Параметр | Описание |
---|---|
$conf{PAYSYS_ACCOUNT_EXPR}='\d+(\d{8})$/$1'; | Возможность применять выражения для аккаунта абонента Пример: Из цифрового логина брать только последние 8 цифр \d+(\d{8})$/$1 |
$conf{PAYSYS_PAYMENTS_METHODS}=' - '; | По умолчанию все оплаты с внешних источников заносятся как External Payments (Внешние платежи). Для создания отдельного типа оплат для каждой платёжной системы нужно указать в файле настройки следующею переменную со списком нужных платёжных систем. Формат списка номер плат. системы:название плат. системы;. Номера являются внутренними идентификаторами системы и не подлежат изменению названия, можно менять. Пример $conf{PAYSYS_PAYMENTS_METHODS}='41:Webmoney; 42:RUpay; 43:SMSProxy; 44:OSMP; 45:Portmone; 46:Ukrpays; 47:USMP;'; |
$conf{PAYSYS_EXCHANGE_RATES}=1; | Отчёт>Paysys>НБ Киргизской Республики Меню для просмотра курса обмена валют |
$conf{PAYSYS_ADD_TO_RECOMMENDED_SUMM}='1.2'; | 1.2 - Значение суммы, которое будет добавляться к рекомендуемой сумме оплаты |
$conf{PAYMENT_METHOD_NEW}=1; | Включение работы модуля с меню Настройки>Другое>Вид оплаты. После включения данной опции, виды оплат будут показываться с меню Настройки>Другое>Вид оплаты, а также появится галочка "Создать вид оплаты" при добавлении платежной системы. |
$conf{PAYMENT_HIDE_USER_MENU}=1; | После включения данной опции, все меню модуля не будут показываться абоненту в кабинете пользователя. |
FTP/SFTP checker
Возможность автоматической проверки банковских выписок пришедших на FTP. Система забирает файлы с FTP и вносит их в систему.
Для настройки добавьте в config.pl один из параметров:
Параметр | Описание |
---|---|
$conf{PAYSYS_FTP_CHECK}='10.10.10.1:LOGIN:PASSWORD:/out/:*.206:PASSIVE_ON;'; | Будет работать по FTP. В данной переменной указываются хост, логин и пароль доступа к ftp серверу, каталог на FTP сервере. Вместо PASSIVE_ON - 1 или 0, для включения пассивного режима. Если вы выбрали этот параметр, тогда нужно установить модуль Net::FTP. |
$conf{PAYSYS_SFTP_CHECK}='10.10.10.1:LOGIN:PASSWORD:/out/:*.206:PASSIVE_ON;'; | Будет работать по SFTP. В данной переменной указываются хост, логин и пароль доступа к sftp серверу, каталог на SFTP сервере. Вместо PASSIVE_ON ставим 0. Если вы выбрали этот параметр, тогда нужно установить модуль Net::FTPSSL. |
Code Block | ||
---|---|---|
| ||
/usr/abills/Abills/modules/Paysys/paysys_cons TYPE=PAYMENTS FTP_CHECK=1 IMPORT_RULE=2 |
Интерактивный режим
При открытии в веб браузере программы без параметра paysys_check.cgi система запускает интерактивный режим пополнения счета, который разрешает пополнить счет без захода в личный кабинет абонентом.
В интерактивном режиме отображаются все подключённые платёжные системы у которых есть возможность оплаты через личный кабинет
Вид формы:
F.A.Q
Вопросы | Ответы |
---|---|
Как перейти со старой схемы на новую? | Сделать надо следующее: |
Как спрятать персональную информацию? | Как спрятать персональную информацию абонента? |
Как Abills различает с какой платежной системы пришел запрос? | Abills ориентируется на IP адреса, которые вы задали в настройках платежной системы. Если адрес, с которого идут запросы не был прикреплен ни к одной платежной системе - Abills не будут обрабатывать их. |