Вторая версия приложения настраивается с помощью 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