Модуль платежей. Разрешает автоматически зачислять деньги с разных платёжных систем.
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 используется новая схема подключения платежных систем, также скоро перестанет поддерживатся PAYSYS_V2
Подключение модуля
Code Block | ||||
---|---|---|---|---|
| ||||
@MODULES = ( 'Paysys' ); # Включение меню финансовых операций. $conf{user_finance_menu}=1; #Включение новой схемы модуля Paysys. $conf{PAYSYS_NEW_SCHEME}=1; $conf{PAYSYS_NEW_SETTINGS} = 1; |
Подробнее про использования новой схемы.
Настройка работы с базой данных и создание таблиц:
Code Block | ||
---|---|---|
| ||
mysql --default-character-set=utf8 -D abills < /usr/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.
По данному файлу можно отследить были ли подтверждения оплаты со стороны платёжной системы. Если не можете найти в данном файле подтверждения о платеже. Скорее всего система не отправила Вам его.
Чтобы быть полностью уверенным что платёжная система не отправляет подтверждение посмотрите в файл логов веб сервера на наличие обращений от платёжной системы к вашему биллингу /var/log/httpd/abills-access_log
Если обращения были, а платеж не провелся, то необходимо посмотреть лог ошибок : /var/log/httpd/abills-error.log
Code Block | ||
---|---|---|
| ||
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}="USD, EUR, UAH" | Параметры для изменения выбора желаемых валют в быстрых отчётах курса валют ЦБ РФ и НБУ. |
$conf{PAYSYS_ADD_TO_RECOMMENDED_SUMM}='1.2'; | 1.2 - Значение суммы, которое будет добавляться к рекомендуемой сумме оплаты |
$conf{PAYMENT_METHOD_NEW}=1; | Включение работы модуля с меню Настройки>Другое>Вид оплаты. После включения данной опции, виды оплат будут показываться с меню Настройки>Другое>Вид оплаты, а также появится галочка "Создать вид оплаты" при добавлении платежной системы. |
$conf{PAYMENT_HIDE_USER_MENU}=1; | После включения данной опции, все меню модуля не будут показываться абоненту в кабинете пользователя. |
$conf{FIO_HIDEN} | После подключения данной опции в платежных терминалах не будет отображаться полное ФИО (Например: Te** Us** Te***n* Ві***р*в**). Подробнее можете почитать здесь |
$conf{PAYMENT_POOL} | Параметр пула платежей. При включенной опции платежи будут проходить дополнительную проверку. Используется с billd payments_pool (проходиться по оплатам из пула оплат и выполняет cross_modules _pre _make для каждой оплаты) |
$conf{PAYSYS_TEST_USER}='test'; | Аккаунт абонента биллинга по умолчанию для тестирования платежных систем |
$conf{PAYSYS_TEST_SYSTEM}='127.0.0.1,192.168.1.40:Osmp.pm'; | IP адрес с которого будут проходить тестовые запросы также с указанием на какую систему отправлять данные запросы |
$conf{PAYSYS_DEBUG} | Включение режима отладки, подробнее можете почитать здесь, таже нужно создать файл paysys_check.log в каталоге usr/abills/var/log/ |
$conf{PAYSYS_MIN_SUM} | Минимальная оплата через портал пользователя |
$conf{PAYSYS_MAX_SUM} | Максимальная оплата через портал пользователя |
$conf{SECOND_BILLING} | Дублирование платежей на второй биллинг, подробнее про это можете прочитать здесь |
$conf{PAYSYS_USER_PORTAL_MAP} | Включить карту в портале пользователя под возможными платежными системами |
$conf{PAYSYS_USER_PORTAL_BTN_TEXT} | Включить надпись названия систем под логотипом платежной системы в портале пользователя |
Пул оплат
$conf{PAYMENT_POOL}=1;
Параметр пула платежей. При включенной опции платежи будут проходить дополнительную проверку.
Используется с billd payments_pool (проходиться по оплатам из пула оплат и выполняет cross_modules_pre cross_modules_make для каждой оплаты)
Это разрешает намного економичней расходовать ресурсы сервера и увеличить скорость ответа на запросы платежных систем. Данный механизм рекомендуется для провайдеров у которых в день свыше 1000 платежей через внешние системы.
Code Block | ||
---|---|---|
| ||
*/10 * * * * root /usr/abills/libexec/billd payments_pool |
Интерактивный режим
При открытии в веб браузере программы без параметра paysys_check.cgi система запускает интерактивный режим пополнения счета, который разрешает пополнить счет без захода в личный кабинет абонентом.
В интерактивном режиме отображаются все подключённые платёжные системы у которых есть возможность оплаты через личный кабинет
Вид формы:
Параметры
$conf{PAYSYS_GATEWAY_IDENTIFIER}='CONTRACT_ID'; | Параметр по которому проверяется абонент, по умолчанию UID |
За дизайн интерактивной формы отвечает шаблон paysys_gateway.tpl
F.A.Q
Вопросы | Ответы |
---|---|
Как перейти со старой схемы на новую? С Версии 0.92.76 По умолчанию новая схема! | Сделать надо следующее: |
Как сделать миграцию с Paysys V2 на V3? | Атоматическую миграцию можете посмотреть здесь |
Как спрятать персональную информацию? | Как спрятать персональную информацию абонента? |
Как Abills различает с какой платежной системы пришел запрос? | Abills ориентируется на IP адреса, которые вы задали в настройках платежной системы. Если адрес, с которого идут запросы не был прикреплен ни к одной платежной системе - Abills не будут обрабатывать их. |
Как настроить платежную систему? | Как настроить платежную систему? |