Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


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


Возможности

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

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




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


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

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

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

Code Block
languagebash
mysql --default-character-set=utf8 -D abills < db/Paysys.sql -p
cp Paysys.pm  /usr/abills/Abills/mysql

Дополнительные модули платёжных систем копируются в папку /usr/abills/Abills/modules/Paysys/systems.


Установка агента получения (чекера) платежей. Платёжные системы отправляют на чекер данные об оплате, чекер идентифицирует систему и заносит средства на счет. Если чекер не может идентифицировать системы он пишет Error: Unknown payment system. 

Code Block
languagebash
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


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

При открытии в веб браузере программы без параметра 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 не будут обрабатывать их.

Отображение ближайшего терминала

Для отображения ближайшего терминал в ЛК пользователя нужно перейти в Денежные операции > Пополнить счет.

Для отображения терминалов обязательно нужно их добавить в меню Настройки>Paysys>Терминалы.

Image Removed