Описание создания модуля AbillsBank.pm
Нужно создать файл AbillsBank.pm в папке /usr/abills/Abills/modules/Paysys/
Заголовки модуля
Шапка модуля
=head1 AbillsBank New module for AbillsBank Documentaion: abills.net.ua Date: 2019.01.01 Version: 7.00 =cut use strict; use warnings; use Abills::Base qw(_bp ); use Abills::Misc qw(); require Paysys::Paysys_Base; package Paysys::systems::AbillsBank; use Paysys; our $PAYSYSTEM_NAME = 'AbillsBank'; our $PAYSYSTEM_SHORT_NAME = 'AB'; our $PAYSYSTEM_ID = 1; our $PAYSYSTEM_VERSION = '7.00'; # Этот хеш используется для настройки системы в меню настроек our %PAYSYSTEM_CONF = ( PAYSYS_ABILLS_BANK_LOGIN => '', );
Обязательные функции модуля
Конструктор модуля.
sub new()
#**********************************************************
=head2 new($db, $admin, $CONF)
Arguments:
$db - ссылка на обьект базы данных (required)
$admin - ссылка на обьект администратора (required)
$CONF - ссылка на хеш %conf (required)
$attr - {
в атрибутах передаем дополнительные параметры
}
Returns:
$self - обьект класса платежной системы
=cut
#**********************************************************
sub new {
my $class = shift;
my ($db, $admin, $CONF, $attr) = @_;
my $self = {
db => $db,
admin => $admin,
conf => $CONF,
DEBUG => $CONF->{PAYSYS_DEBUG} || 0,
};
bless($self, $class);
return $self;
}
sub get_settings
#**********************************************************
=head2 get_settings() - return hash of settings
Arguments:
Returns:
HASH
=cut
#**********************************************************
sub get_settings {
my %SETTINGS = ();
$SETTINGS{VERSION} = $PAYSYSTEM_VERSION; # объявляется в шапке модуля
$SETTINGS{ID} = $PAYSYSTEM_ID; # объявляется в шапке модуля
$SETTINGS{NAME} = $PAYSYSTEM_NAME; # объявляется в шапке модуля
# хеш с нужными ключами настсройки системы, например: логин, пароль, поле идентификации абонента и тд.
$SETTINGS{CONF} = \%PAYSYSTEM_CONF;
return %SETTINGS;
}
Функция proccess() запускается при запросе от платежной системы на скрипт paysys_check.cgi.
Когда приходит запрос, система проверяет наличие IP адреса с которого идет запрос( $ENV{REMOTE_ADDR} ) в списке адресов которые вы прописали при настройках модуля.
sub proccess()
#**********************************************************
=head2 proccess(\%FORM) - function that proccessing payment
on paysys_check.cgi
Arguments:
$FORM - HASH REF to %FORM
Returns:
=cut
#**********************************************************
sub proccess {
my $self = shift;
my ($FORM) = @_;
}
Функция user_portal() должна быть для оплаты из клиентского кабинета.
Функция запускается после введения суммы и нажатия Дальше.
sub proccess()
#**********************************************************
=head2 user_portal () -
Arguments:
Returns:
=cut
#**********************************************************
sub user_portal {
my $self = shift;
my ($user, $attr) = @_;
}