Это старая версия документа.
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 |