Терминалы Приватбанка, версия 2: відмінності між версіями
Sv (обговорення | внесок) мНемає опису редагування |
Sv (обговорення | внесок) мНемає опису редагування |
||
Рядок 27: | Рядок 27: | ||
field_value => ['nas21'], # значения допполя (либо группы) | field_value => ['nas21'], # значения допполя (либо группы) | ||
params => [ | params => [ | ||
{ | { # расщепление платежей | ||
percent => 10, | percent => 10, | ||
serviceCode => 10, | serviceCode => 10, | ||
Рядок 56: | Рядок 56: | ||
}, | }, | ||
], | ], | ||
</pre> | |||
Правило - это блок {...} в котором находятся 3 параметра: | |||
* field_name (не обязательное) | |||
* field_value (не обязательное) | |||
* params (обязательное) - параметры ответа платежной системе | |||
Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Таким образом вы можете запрограммировать такую логику: у клиента есть допполе, указывающее к какому району обслуживания он относится. В зависимости от этого поля мы будем возвращать Приватбанку информацию к какому мерчанту перечислять финансы. Однако, если по какой-либо причине поле не установлено, можно в следующем правиле проверить его группу и ответить соответствующе. | |||
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так: | |||
<pre> | |||
cd /usr/local/nodeny/ && perl -c modules/p24/p24.pl | |||
</pre> | |||
<pre> | |||
modules/p24/p24.pl syntax OK | |||
</pre> | </pre> |
Версія за 10:03, 21 грудня 2024
Данная версия платежного модуля позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Приведем виртуальный пример для демонстрации возможностей:
- Если группа клиента 1 или 5 или 10, то распределить платеж между мерчантами М1, M2, M3 в соотношении 20%-30%-50%
- Если группа иная, но установлено поле ФОП, то разпределить платеж между мерчантами M2 и M4 в соотношении 50%-50%
- Если не ФОП и при этом группа 7, то все финансы перечислить на M5
- Если не ФОП и при этом группа 8, то все финансы перечислить на M6
- Всех остальных делить между M5 и M6 в соотношении 10%-90%
Задается это правилами в файле p24.pl:
rules => [ { field_name => 'grp', # допполе (либо grp) field_value => [1, 2, 13], # значения допполя (либо группы) params => [ { percent => 100, serviceCode => 10, CompanyCode => 12345, ServiceName => 'Доступ до мережі Інтернет', } ] }, { field_name => '_ip_tag', # допполе (либо grp) field_value => ['nas21'], # значения допполя (либо группы) params => [ { # расщепление платежей percent => 10, serviceCode => 10, CompanyCode => 12345, ServiceName => 'Доступ до мережі Інтернет', },{ percent => 20, serviceCode => 11, CompanyCode => 22222, ServiceName => 'Послуга техпідтримки', },{ percent => 70, serviceCode => 12, CompanyCode => 33333, ServiceName => 'Послуга відпочинку', } ], }, { # правило для всех остальных, кто не попал в предыдущие params => [ { percent => 100, serviceCode => 200, CompanyCode => 777777, ServiceName => 'Доступ до мережі Інтернет', } ] }, ],
Правило - это блок {...} в котором находятся 3 параметра:
- field_name (не обязательное)
- field_value (не обязательное)
- params (обязательное) - параметры ответа платежной системе
Когда модуль получает запрос от платежной системы, он проверяет правила сверху вниз, и если правило совпадает - модуль формирует ответ согласно этому правилу и прекращает их (правил) обработку. Таким образом вы можете запрограммировать такую логику: у клиента есть допполе, указывающее к какому району обслуживания он относится. В зависимости от этого поля мы будем возвращать Приватбанку информацию к какому мерчанту перечислять финансы. Однако, если по какой-либо причине поле не установлено, можно в следующем правиле проверить его группу и ответить соответствующе.
Правила задаются как perl-код - здесь он чем-то похож на json, тем не менее можно ошибиться в синтаксисе и он вообще не будет запускаться. Поэтому после изменения проверяем его так:
cd /usr/local/nodeny/ && perl -c modules/p24/p24.pl
modules/p24/p24.pl syntax OK