=====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, тогда скрипт запустится в интерактивном режиме, и можно будет протестировать одну из подключенных платежных систем.