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


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; )

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

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
});

Параметры

PAYMENT_SYSTEM Краткое название платёжной системы
PAYMENT_SYSTEM_ID Номер платёжной системы
CHECK_FIELD Поле синхронизации абонента
USER_ID ID абонента
SUM Сума оплаты
EXT_ID Внешний уникальный идентификатор оплаты
DATA Хаш параметров оплаты для ведения лога
CURRENCY Курс обмена для платежей данной системы. Идентифицируется по короткому названию
CURRENCY_ISO Курс обмена. Идентифицируется по ISO коду
MK_LOG Вести лог

$DEBUG |Режим отладки|

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

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 Режим отладки
13 Ошибка при записи в журнал внешних оплат (Paysys)
14
17 SQL При проведении оплаты