Portmone

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

Версия 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-режим и увидеть как идет обработка правил