Page tree
Skip to end of metadata
Go to start of metadata

Вторая версия приложения настраивается с помощью YML-файла. Настройка АСР выполняется так же, как и для первой версии (см. Прием платежей из внешних систем (агент HPD)).

HPD v2 работает в связки HPAY v2.

Конфигурационный файл

HPD v2 поддерживает работу с несколькими конфигурационными файлами, которые рекурсивно объединяются при запуске. Приоритет имеют файлы в директории /etc/hydra/hpd/. Их параметры перезаписывают параметры по умолчанию, хранящиеся в директории с приложением. При старте приложение пишет вычисленные настройки в лог-файл, что можно использовать для отладки при необходимости.

Пример конфигурационного файла hpd.yml:

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 нет путей).

  • No labels

1 Comment

  1. Anonymous

    пункт plugins:...

     также следует добавить в ssl & ssl_cv