Вторая версия приложения настраивается с помощью YML-файла. Настройка АСР выполняется так же, как и для первой версии (см. Прием платежей из внешних систем (агент HPD)).
HPD v2 работает в связки HPAY v2.
Конфигурационный файл
HPD v2 поддерживает работу с несколькими конфигурационными файлами, которые рекурсивно объединяются при запуске. Приоритет имеют файлы в директории /etc/hydra/hpd/. Их параметры перезаписывают параметры по умолчанию, хранящиеся в директории с приложением. При старте приложение пишет вычисленные настройки в лог-файл, что можно использовать для отладки при необходимости.
Пример конфигурационного файла hpd.yml:
app: # Количество потоков обработки запросов [поддержка с 6.2.0.17+, 6.0.0.53+] threads: 20 database: name: offline # Пул соединений к Oracle (app.threads + 1) [поддержка с 6.2.0.17+, 6.0.0.53+] max_pool_size: 21 hydra: user: offline_telecom password: f43gsd2h5 plugins: default: # Обязательные параметры bank_code: ОСМП bank_account: ОСМП # Необязательные параметры # Тип платежа pay_type: RMM_KIND_Test # Шаблон (регулярное выражение) номера лицевого счета или другой # сущности, по которой осуществляется подбор # лицевого счета для зачисления средств account_lookup_pattern: ^\w+$ # Вариант шаблона с префиксом, который отрезается при подборе счета # (см. account_lookup_template) # account_lookup_pattern: '^(?:prefix: )(?P<account>.+)$' # Шаблон для составления номера счета перед подбором в БД # Результат будет состоять из строки new_prefix и строки группы account # настройки account_lookup_pattern. # Пример: строка 'prefix: 750' будет преобразована в 'new_prefix750' # account_lookup_template: 'new_prefix{account}' # Значение, по которому происходит подбор лицевого счета # Возможные варианты: # - account_no: номер лицевого счета; # - customer_code: номер абонента; # - phone_number: телефонный номер оборудования абонента; # - contract_no: номер договора на оказание услуг; # - invoice_no: номер счета (документа). account_lookup_field: account_no # Ограничение по группе абонентов customer_group: null # Флаг, разрешающий прием платежей от юридических лиц allow_company_payments: false # Код валюты платежей currency: RUB # Размер комиссии fee: 0.0 osmp: # Допустимо указание настроек по умолчанию для всех плагинов # одного типа default: {} # Объявление настроек экземпляра плагина. Плагин не будет подключен, пока # не будет использован хотя бы в одном слушателе (см. ниже) main: {} # Пример настроек другого плагина того же типа alternative: {} # Описание «слушателей» — источников запросов для плагинов listeners: http: plain: host: 0.0.0.0 port: 9080 plugins: [osmp/main] # Список разрешенных адресов для подключения acl: [127.0.0.1, 172.16.0.0/16, 80.90.100.0/29] ssl: # HTTP-слушатель + SSL host: 0.0.0.0 port: 9443 ssl: true key: /etc/hydra/hpd/cert/hpd.pem certificate: /etc/hydra/hpd/cert/ssl.pem ssl_cv: # HTTP-слушатель + SSL с клиентской верификацией host: 0.0.0.0 port: 9444 ssl: true verify_peer: true key: /etc/hydra/hpd/cert/hpd.pem certificate: /etc/hydra/hpd/cert/ssl.pem plain_basic_auth: host: 1.2.4.3 port: 9081 plugins: [] # Пример бэйсик-аутентификации basic_auth: login: abyr password: fhwrg546ss3 # Приложение может запускать несколько дочерних процессов, # в каждом из которых могут быть свои слушатели. # Запуск больше одного дочернего процесса обычно не требуется. # Если вы запускаете несколько процессов, убедитесь, что # слушатели различных процессов запущены на разных TCP-портах workers: - listeners: [http/ssl]
Для HTTP-слушателей используется следующая маршрутизация:
http://host:port/plugin_type/plugin_instance_name/plugin_action?get_parameters, где plugin_type — тип плагина (например, osmp), plugin_instance_name — имя экземпляра плагина (например, main), plugin_action (необязательный параметр) — название действия плагина, которое будет вызвано. Часть плагинов (например, Киберплат) используют только GET-параметры для определения действия плагина, которое нужно вызвать, другая часть — может использовать явно указанные в url действия. Тот или иной способ взаимодействия определяется особенностями реализации протокола. Например:
http://host/plugin1/main/check — путь для вызова действия check http://host/plugin1/main — путь для вызова действия по умолчанию. Обычно это действие process, но это не обязательно http://host/plugin2/main?action=check — другой плагин, в котором необходимое действие определяется на основании значения GET-параметра action
То, какие адреса необходимо использовать для вызова нужных действий плагина, описывается в документации на конкретный плагин. Если никаких пояснений не дается, то по умолчанию это путь plugin_type/instance_name (например, osmp/main), его нужно будет использовать при настройке стыковки с платежной системой.
Для TCP-слушателя (на текущий момент он используется только в ПС NCC) используется только хост и порт (т .к. в TCP нет путей).
1 Comment
Anonymous
пункт
plugins:...
также следует добавить в ssl & ssl_cv