Portmone: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
мНемає опису редагування
 
(Не показано 7 проміжних версій цього користувача)
Рядок 3: Рядок 3:
==Правила расщепления==
==Правила расщепления==


Версия 3 позволяет очень гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON:  
Версия 3 позволяет гибко перераспределять поступающие средства, используя такие фичи как расщепление и мультимерчант. Правила задаются в виде JSON:  
<pre>
<pre>
[
[
Рядок 51: Рядок 51:


Правило - это блок {...} в котором находятся 3 параметра:
Правило - это блок {...} в котором находятся 3 параметра:
* field_name (необязательное)
* field_name (необязательный)
* field_value (необязательное)
* field_value (необязательный)
* 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-режим и увидеть как идет обработка правил