Это старая версия документа.


Paysys API

API по созданию модулей для Paysys

Для тестирования систем используется опция

$conf{PAYSYS_TEST_SYSTEM}='192.168.0.88:Paynet';

|192.168.0.88| IP адреса с которого будут отправляться запросы на тестирование |

Paynet Название платёжного модуля

В платёжном модуле должна присутствовать функция [paysys_name]_check_payment, она вызывается по умолчанию

Лог проведения транзакция cgi-bin/paysys_check.log для ведения лога нужно включить режим отладки 1 или выше ( $conf{PAYSYS_DEBUG}=1; )

Настройки модуля

our %PAYSYSTEM_CONF    = ('PAYSYS_FONDY_MERCH_ID' => '',
                          'PAYSYS_FONDY_PASSWORD' => '',
                          'PAYSYS_FONDY_CURRENCY' => 'UAH');
our $PAYSYSTEM_IP      = '192.168.0.100,192.168.0.101';
our $PAYSYSTEM_VERSION = 1.00;
our $PAYSYSTEM_NAME    = 'Fondy';
PAYSYSTEM_CONF Хеш с настройками(«ключ» ⇒ «значение по умолчанию»
PAYSYSTEM_IP IP от платежной системы. Если больше чем один, то задавать через запятую.
PAYSYSTEM_VERSION Версия модуля
PAYSYSTEM_NAME Название платежной системы

Проверить существующего абонента

my ($result, $list) = paysys_check_user({
   CHECK_FIELD => $CHECK_FIELD,
   USER_ID     => $account
});
$result код возврата
$list список параметров абонента

Проведение платежа

my $result_code = paysys_pay({ 
    PAYMENT_SYSTEM    => $payment_system,
    PAYMENT_SYSTEM_ID => $payment_system_id,
    CHECK_FIELD       => $CHECK_FIELD,
    USER_ID           => $request_params{customer_id},
    SUM               => $request_params{sum},
    EXT_ID            => $request_params{transaction_id},
    DATA              => \%request_params,
    CURRENCY          => $conf{PAYSYS_PAYNET_CURRENCY},
    MK_LOG            => 1,
    DEBUG             => $debug
    ERROR             => 3,
    USER_INFO         => 'Additional info'
});

Параметры

PAYMENT_SYSTEM Краткое название платёжной системы
PAYMENT_SYSTEM_ID Номер платёжной системы
CHECK_FIELD Поле синхронизации абонента
USER_ID ID абонента
SUM Сума оплаты
EXT_ID Внешний уникальный идентификатор оплаты
DATA Хаш параметров оплаты для ведения лога
CURRENCY Курс обмена для платежей данной системы. Идентифицируется по короткому названию. При указании данной опции система проверяет по короткому имени есть ли такой курс в системе и использует его при платежах.
CURRENCY_ISO Курс обмена. Идентифицируется по ISO коду
MK_LOG Вести лог
DEBUG Режим отладки
PAYMENT_ID⇒ 1, При включении данного параметра функция возвращает 2 значения
($status_code, $payments_id

$status_code - код выполнения операции
$payments_id - Идентификатор платежа в ABillS
PAYMENT_DESCRIBE Описание платежа. Добавляется в описание платежа. Если параметр не заполнен передаётся название платёжной системы
USER_INFO Дополнительная информация, которая показывается во время просмотра информации о платеже
ERROR Если произошла ошибка, передать этот параметр с номером ошибки

Отмена платежа

my $result = paysys_pay_cancel({
                  TRANSACTION_ID => "$payment_system:$transaction_id"
             });

Параметры:

TRANSACTION_ID Номер транзакции
PAYMENT_ID Номер платежа в модуле Paysys

Возвращает ИД транзакции, при успешной отмене платежа.

Проверка существующей транзакции

my $result = paysys_pay_check({
                  TRANSACTION_ID => "$payment_system:$transaction_id"
             });

Параметры:

TRANSACTION_ID Номер транзакции
PAYMENT_ID Номер платежа в модуле Paysys

Если система не может найти транзакцию возвращает 0 при успешном поиске возвращается номер транзакции

Ошибки

0 Операция прошла успешно
1 Пользователя нет в системе
2 Ошибка базы
3 Такая оплата уже существует в системе
5 Неправильная сумма платежа. возникает в системах с тандемной оплатой если абонент начинает транзакцию с одной суммой но в процессе транзакции меняет сумму
6 Слишком маленькая сумма
7 Сумма оплаты больше разрешённой
8 Транзакция не найдена
9 Оплата уже существует
10 Такой оплаты не найдено в системе
11 Для данной группы абонентов запрещено использовать внешние оплаты (Paysys)
12 Неизвестаня SQL ошибка оплаты
13 Ошибка при записи в журнал внешних оплат (Paysys)
14
17 SQL При проведении оплаты
28 Не правильный курс обмена

Тестирование платежных модулей

Для тестирования платежных систем в папке /usr/abills/Abills/modules/Paysys/t/ есть скрипт paysys_check.t.

Запуск скрипта:

perl paysyys_test.pl HOST=[billing_url] FILE=[filename] XML=[xml] DEBUG=[debug]

^ HOST | здесь мы прописываем адресс для скрипта paysys_check.cgi |

0 Операция прошла успешно