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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Current »

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

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

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

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

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

hpd.yml
database:
  name: offline

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
      post: 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