=====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 paysys_check.t HOST=[billing_url] FILE=[filename] XML=[xml] DEBUG=[debug]
**Параметры:**
^ HOST=https://192.168.1.100:9443/paysys_check.cgi | здесь мы прописываем адресс для скрипта paysys_check.cgi, **обязательный** |
^ FILE=fondy.txt | название платежной системы |
^ XML=1 | если система работает через XML |
^ DEBUG =1 | для вывода дебаг информации |
Если не задать параметр FILE, тогда скрипт запустится в интерактивном режиме, и можно будет протестировать одну из подключенных платежных систем.