Portmone: відмінності між версіями
Sv (обговорення | внесок) мНемає опису редагування |
Sv (обговорення | внесок) |
||
| (Не показано 6 проміжних версій цього користувача) | |||
| Рядок 3: | Рядок 3: | ||
==Правила расщепления== | ==Правила расщепления== | ||
Версия 3 позволяет | Версия 3 позволяет гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON: | ||
<pre> | <pre> | ||
[ | [ | ||
| Рядок 55: | Рядок 55: | ||
* params (обязательный) - параметры расщепления | * params (обязательный) - параметры расщепления | ||
Правила проверяются сверху вниз, и если | Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил. | ||
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456. | В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456. | ||
Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002. | Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002. | ||
Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005 | Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005 | ||
В поле description в { {...} } можно указывать данные клиента: | |||
<pre> | |||
user.id : id пользователя | |||
user.name : логин | |||
user.fio : ФИО | |||
user.ppc : платежный код | |||
user.grp : номер группы клиента | |||
user.grp_name : имя группы | |||
user.state : on - доступ открыт, off - закрыт | |||
user.state_off : установлен если state равен off | |||
user.contract : договор | |||
user.contract_date_as_text : дата договора в виде dd.mm.yyyy | |||
user.balance : баланс | |||
user.comment : комментарий | |||
user.discount : скидка | |||
user.recommended_pay : рекомендованная сумма платежа | |||
user.dopdata : дополнительные данные | |||
</pre> | |||
При тестировании пополнения от имени абонента можете включить debug-режим и увидеть как идет обработка правил | |||
Поточна версія на 08:49, 13 червня 2025
Версия 3
Правила расщепления
Версия 3 позволяет гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON:
[
{
"field_name": "grp",
"field_value": [1, 2, 13],
"params": [
{
"percent": 100,
"payee_id": 123456,
"description": "Доступ до мережі Інтернет для {{user.fio}}"
}
]
},
{
"field_name": "_district",
"field_value": ["obolon"],
"params": [
{
"percent": 10,
"payee_id": 1000,
"description": "Доступ до мережі Інтернет ({{user.ppc}})"
},
{
"percent": 20,
"payee_id": 1001,
"description": "Послуга техпідтримки"
},
{
"percent": 70,
"payee_id": 1002,
"description": "Послуга відпочинку"
}
]
},
{
"params": [
{
"percent": 100,
"payee_id": 1005,
"description": "Доступ до мережі Інтернет"
}
]
}
]
Правило - это блок {...} в котором находятся 3 параметра:
- field_name (необязательный)
- field_value (необязательный)
- params (обязательный) - параметры расщепления
Правила проверяются сверху вниз, и если условия правила совпадают с данными абонента - модуль формирует правила расщепления и прекращает обработку правил.
В примере выше, если група абонента 1, 2 или 13, то расщепление фактически выключается, 100% суммы оплаты пойдет мерчанту 123456. Если же абонент не находится в этих группах, то проверяется, что его допполе _district имеет значение obolon. В этом случае платеж распределяется между тремя мерчантами 1000, 1001 и 1002. Во всех остальных случаях 100% суммы оплаты пойдет мерчанту 1005
В поле description в { {...} } можно указывать данные клиента:
user.id : id пользователя user.name : логин user.fio : ФИО user.ppc : платежный код user.grp : номер группы клиента user.grp_name : имя группы user.state : on - доступ открыт, off - закрыт user.state_off : установлен если state равен off user.contract : договор user.contract_date_as_text : дата договора в виде dd.mm.yyyy user.balance : баланс user.comment : комментарий user.discount : скидка user.recommended_pay : рекомендованная сумма платежа user.dopdata : дополнительные данные
При тестировании пополнения от имени абонента можете включить debug-режим и увидеть как идет обработка правил