Skip to end of metadata
Go to start of metadata

Модуль платежей. Разрешает автоматически зачислять деньги с разных платёжных систем.

Возможности

С чего начать?

  1. Надо подписать договор с платежной системой.

  2. Получить протокол (опционально) взаимодействия API.

  3. Получить ключи от процессинга (например, логин, пароль, номер мерчанта в платежной системе).

  4. Купить и настроить модуль платежной системы в ABillS.

  5. Принимать платежи.


Типы внешних платежей

Тип 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 используется новая схема подключения платежных систем.


Подключение модуля


abills/libexec/config.pl
@MODULES = (
          'Paysys'
          );
# Включение меню финансовых операций.
$conf{user_finance_menu}=1;


#Включение новой схемы модуля Paysys.
$conf{PAYSYS_NEW_SCHEME}=1;


Настройка работы с базой данных и создание таблиц:

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. 

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;

Включение работы модуля с меню Настройки>Другое>Вид оплаты. После включения данной опции, виды оплат будут показываться с меню Настройки>Другое>Вид оплаты, а также появится галочка "Создать вид оплаты" при добавлении платежной системы.

Интерактивный режим

При открытии в веб браузере программы без параметра paysys_check.cgi система запускает интерактивный режим пополнения счета, который разрешает пополнить счет без захода в личный кабинет абонентом.

В интерактивном режиме отображаются все подключённые платёжные системы у которых есть возможность оплаты через личный кабинет

Вид формы: 

F.A.Q

ВопросыОтветы
Как перейти со старой схемы на новую?

Сделать надо следующее:
1) прописать опцию в /usr/abills/libexec/config.pl
$conf{PAYSYS_NEW_SCHEME}=1;
2) все новые .pm файлы скопировать в папку /usr/abills/Abills/modules/Paysys/systems/
3) завести платежные системы через /Настройки/Paysys/Настройки/

Как спрятать персональную информацию?Как спрятать персональную информацию абонента?
Как Abills различает с какой платежной системы пришел запрос?Abills ориентируется на IP адреса, которые вы задали в настройках платежной системы. Если адрес, с которого идут запросы не был прикреплен ни к одной платежной системе - Abills не будут обрабатывать их.
  • No labels