Зміст

Опір Гусака

Як виглядає?

ну якось так

а ви що очікували?

Як вмикається?

За допомогою відповідної опції

alter.ini
GOOSE_RESISTANCE=1

Що дозволяє робити?

Ну для початку, можна на нього натискати

Щоб дізнатись, що в нас нема жодних стратегій

Тут ми можемо створювати “стратегії”

Звичайно ми можемо створити довільну кількість стратегій гуся

Опція “Використання прив'язок” в купі з значенням “Основний контрагент” напряму впливає на те, як вибиратиметься стратегія відносно базових прив'язок контрагентів, котрі описуються опціями AGENTS_ASSIGN та DEFAULT_ASSIGN_AGENT. У випадку, якщо чекбокс “Використання прив'язок” знято - стратегія просто собі є і є.

Кожну з них нам обов'язково необхідно налаштувати, додавши в неї всіх(!) контрагентів які будуть приймати в ній участь

Тип “розподілу” може мати наступні значення:

Також за необхідності, для кожного контрагента в рамках кожної окремої стратегії, ми можемо заповнити низку користувацьких даних, якось так:

Також ми у будь-який момент, можемо провести натурне тестування наших стратегій

Та прослідкувати за розподілом коштів в рамках стратегії

Тут варто зазначити, що в даному прикладі користувач проживає на вулиці “Бандери”. А вона у нас де? Вірно, ось тут:

Тобто шлях вирішення того, яку стратегію буде обрано для конкретного користувача був “користувач⇒Адреса⇒Статична прив'язка / Контрагент за адресою / чи агент за замовчуванням⇒Стратегія”. У випадку, якщо б цей користувач був примусово прив'язаний до основного контрагента іншої стратегії

то і результат тестування виглядав би якось трішки інакше

У випадку, якщо не вдалось визначити стратегію на основі “Використання прив`язок” + “Основний контрагент” буде використано першу ж наявну стратегію, незалежно від її типу. Коротше всі стратегії є “Користуваче-центричними”. Також в стратегії є параметр “Тариф”. Він має пріоритет над усім іншим та ігнорує легасі-прив'язки. Тобто, якби в попередньому прикладі в користувача навіть за наявності адресного присвоєння чи присвоєного вручну контрагента був би призначений тариф Turbo - для нього було б застосовано стратегію з ID 3.

Що до порядку обробки “Розподілу коштів”, обробляються вони завжди в наступному порядку, зверху вниз:

  1. Абсолютне значення (від суми платежу віднімається значення)
  2. Відсоток від суми (від суми платежу віднімається відсоток значення)
  3. Відсоток від залишку (від залишку після п.1. та п.2. віднімається відсоток значення)
  4. Залишки (все що залишилось після п.1., п.2. та п.3. поділене на кількість агентів з цим типом)
  5. Жоден (завжди 0, просто створює присутність агента)

Для розробників

Можливі параметри виклику з RemoteAPI:

Ясно, що один з двох параметрів username чи paymentid, на ваш розсуд є обов'язковим.

Запит:

https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&username=sometestuser&amount=350

Або:

https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&paymentid=123456789&amount=350

Коротко про те що відбувається в результатах та на що варто звертати увагу:

Зразок того, що міститься в включі agents:

  [agents] => Array
        (
            [1] => Array
                (
                    [id] => 1
                    [bankacc] => UA111111111111111111111111111
                    [bankname] => РогиТаКопита
                    [bankcode] => 666666
                    [edrpo] => 12345678
                    [ipn] => 
                    [licensenum] => 
                    [juraddr] => Лісова 42
                    [phisaddr] => Леонтовича 13
                    [phone] => 1234567
                    [contrname] => МПП НашПровайдер
                    [agnameabbr] => 
                    [agsignatory] => 
                    [agsignatory2] => 
                    [agbasis] => 
                    [agmail] => 
                    [siteurl] => 
                    [splitamount] => 265
                    [splittype] => leftovers
                    [splitvalue] => 0
                    [extinfo] => Array
                        (
                        )
 
                    [customdata] => Array
                        (
                            [somekey] => somevalue
                            [anotherkey] => такі буковки тут теж працюють
                        )
 
                )
                .....

Особливу увагу добре би звернути там на ось ці поля:

Повна відповідь JSON:

{
  "amount": "350",
  "userlogin": "sometestuser",
  "paymentid": 123456789,
  "payopts": {
    "minamount": 50,
    "maxamount": 0,
    "isvalid": true,
    "amount": "350"
  },
  "id": "1",
  "name": "Базова стратегія",
  "useassigns": "1",
  "primaryagentid": "1",
  "maxamount": null,
  "tariff": "0",
  "agents": {
    "1": {
      "id": "1",
      "bankacc": "UA111111111111111111111111111",
      "bankname": "РогиТаКопита",
      "bankcode": "666666",
      "edrpo": "12345678",
      "ipn": "",
      "licensenum": "",
      "juraddr": "Лісова 42",
      "phisaddr": "Леонтовича 13",
      "phone": "1234567",
      "contrname": "МПП НашПровайдер",
      "agnameabbr": "",
      "agsignatory": "",
      "agsignatory2": "",
      "agbasis": "",
      "agmail": "",
      "siteurl": "",
      "splitamount": 265,
      "splittype": "leftovers",
      "splitvalue": "0",
      "extinfo": [],
      "customdata": {
        "somekey": "somevalue",
        "anotherkey": "такі буковки тут теж працюють"
      }
    },
    "15": {
      "id": "15",
      "bankacc": "UA333333333333333333333333333",
      "bankname": "ПриватБанк",
      "bankcode": "305299",
      "edrpo": "333333333",
      "ipn": "",
      "licensenum": "",
      "juraddr": "",
      "phisaddr": "",
      "phone": "",
      "contrname": "ФОП Нереаленко",
      "agnameabbr": "",
      "agsignatory": "",
      "agsignatory2": "",
      "agbasis": "",
      "agmail": "",
      "siteurl": "",
      "splitamount": 35,
      "splittype": "percent",
      "splitvalue": "10",
      "extinfo": [],
      "customdata": []
    },
    "24": {
      "id": "24",
      "bankacc": "UA444444444444444444444444444",
      "bankname": "ПриватБанк",
      "bankcode": "305299",
      "edrpo": "87654321",
      "ipn": "",
      "licensenum": "",
      "juraddr": "",
      "phisaddr": "",
      "phone": "",
      "contrname": "ТОВ ЧорнийЛіс",
      "agnameabbr": "",
      "agsignatory": "",
      "agsignatory2": "",
      "agbasis": "",
      "agmail": "agent@site.com",
      "siteurl": "https://ubilling.net.ua",
      "splitamount": "50",
      "splittype": "absolute",
      "splitvalue": "50",
      "extinfo": [],
      "customdata": []
    }
  },
  "user": {
    "login": "sometestuser",
    "realname": "Типу тестовий користувач",
    "Passive": "0",
    "Down": "0",
    "Password": "cepizdets",
    "AlwaysOnline": "1",
    "Tariff": "Drift",
    "TariffChange": "",
    "Credit": "0",
    "Cash": "666.75",
    "ip": "172.16.0.6",
    "mac": "98:de:d0:89:1e:31",
    "cityname": "Зловісненськ",
    "streetname": "Бандери",
    "buildnum": "22",
    "entrance": "1",
    "floor": "3",
    "apt": "124",
    "geo": "48.52782,25.05541",
    "fulladress": "Бандери 22/124",
    "phone": "8101050",
    "mobile": "+380501234567",
    "contract": "13",
    "email": "",
    "paymentid": 123456789
  },
  "runtime": [],
  "agentsextinfo": {
    "5": {
      "id": "5",
      "agentid": "5",
      "service_type": "Internet",
      "internal_paysys_name": "CITY24M_RYS",
      "internal_paysys_id": "",
      "internal_paysys_srv_id": "",
      "paysys_token": "",
      "paysys_secret_key": "",
      "paysys_password": "",
      "payment_fee_info": "",
      "paysys_callback_url": ""
    },
    "6": {
      "id": "6",
      "agentid": "5",
      "service_type": "Internet",
      "internal_paysys_name": "EASYPAYM_RYS",
      "internal_paysys_id": "",
      "internal_paysys_srv_id": "",
      "paysys_token": "",
      "paysys_secret_key": "",
      "paysys_password": "",
      "payment_fee_info": "",
      "paysys_callback_url": ""
    },
    "7": {
      "id": "7",
      "agentid": "3",
      "service_type": "Internet",
      "internal_paysys_name": "CITY24M_CHER",
      "internal_paysys_id": "",
      "internal_paysys_srv_id": "",
      "paysys_token": "",
      "paysys_secret_key": "",
      "paysys_password": "",
      "payment_fee_info": "",
      "paysys_callback_url": ""
    },
    "9": {
      "id": "9",
      "agentid": "5",
      "service_type": "Internet",
      "internal_paysys_name": "PBANKM_RYS",
      "internal_paysys_id": "5",
      "internal_paysys_srv_id": "2",
      "paysys_token": "",
      "paysys_secret_key": "",
      "paysys_password": "",
      "payment_fee_info": "subscriber",
      "paysys_callback_url": ""
    }
  }
}

Вона ж у вигляді прямого масиву

Array
(
    [amount] => 350
    [userlogin] => sometestuser
    [paymentid] => 123456789
    [payopts] => Array
        (
            [minamount] => 50
            [maxamount] => 0
            [isvalid] => 1
            [amount] => 350
        )
 
    [id] => 1
    [name] => Базова стратегія
    [useassigns] => 1
    [primaryagentid] => 1
    [maxamount] => 
    [tariff] => 0
    [agents] => Array
        (
            [1] => Array
                (
                    [id] => 1
                    [bankacc] => UA111111111111111111111111111
                    [bankname] => РогиТаКопита
                    [bankcode] => 666666
                    [edrpo] => 12345678
                    [ipn] => 
                    [licensenum] => 
                    [juraddr] => Лісова 42
                    [phisaddr] => Леонтовича 13
                    [phone] => 1234567
                    [contrname] => МПП НашПровайдер
                    [agnameabbr] => 
                    [agsignatory] => 
                    [agsignatory2] => 
                    [agbasis] => 
                    [agmail] => 
                    [siteurl] => 
                    [splitamount] => 265
                    [splittype] => leftovers
                    [splitvalue] => 0
                    [extinfo] => Array
                        (
                        )
 
                    [customdata] => Array
                        (
                            [somekey] => somevalue
                            [anotherkey] => такі буковки тут теж працюють
                        )
 
                )
 
            [24] => Array
                (
                    [id] => 24
                    [bankacc] => UA444444444444444444444444444
                    [bankname] => ПриватБанк
                    [bankcode] => 305299
                    [edrpo] => 87654321
                    [ipn] => 
                    [licensenum] => 
                    [juraddr] => 
                    [phisaddr] => 
                    [phone] => 
                    [contrname] => ТОВ ЧорнийЛіс
                    [agnameabbr] => 
                    [agsignatory] => 
                    [agsignatory2] => 
                    [agbasis] => 
                    [agmail] => agent@site.com
                    [siteurl] => https://ubilling.net.ua
                    [splitamount] => 50
                    [splittype] => absolute
                    [splitvalue] => 50
                    [extinfo] => Array
                        (
                        )
 
                    [customdata] => Array
                        (
                        )
 
                )
 
            [15] => Array
                (
                    [id] => 15
                    [bankacc] => UA333333333333333333333333333
                    [bankname] => ПриватБанк
                    [bankcode] => 305299
                    [edrpo] => 333333333
                    [ipn] => 
                    [licensenum] => 
                    [juraddr] => 
                    [phisaddr] => 
                    [phone] => 
                    [contrname] => ФОП Нереаленко
                    [agnameabbr] => 
                    [agsignatory] => 
                    [agsignatory2] => 
                    [agbasis] => 
                    [agmail] => 
                    [siteurl] => 
                    [splitamount] => 35
                    [splittype] => percent
                    [splitvalue] => 10
                    [extinfo] => Array
                        (
                        )
 
                    [customdata] => Array
                        (
                        )
 
                )
 
        )
 
    [user] => Array
        (
            [login] => sometestuser
            [realname] => Типу тестовий користувач
            [Passive] => 0
            [Down] => 0
            [Password] => cepizdets
            [AlwaysOnline] => 1
            [Tariff] => Drift
            [TariffChange] => 
            [Credit] => 0
            [Cash] => 666.75
            [ip] => 172.16.0.6
            [mac] => 98:de:d0:89:1e:31
            [cityname] => Зловісненськ
            [streetname] => Бандери
            [buildnum] => 22
            [entrance] => 1
            [floor] => 3
            [apt] => 124
            [geo] => 48.52782,25.05541
            [fulladress] => Бандери 22/124
            [phone] => 8101050
            [mobile] => +380501234567
            [contract] => 13
            [email] => 
            [paymentid] => 123456789
        )
 
    [runtime] => Array
        (
        )
    [agentsextinfo] => Array
        (
            [7] => Array
                (
                    [id] => 7
                    [agentid] => 3
                    [service_type] => Internet
                    [internal_paysys_name] => CITY24M_CHER
                    [internal_paysys_id] => 
                    [internal_paysys_srv_id] => 
                    [paysys_token] => 
                    [paysys_secret_key] => 
                    [paysys_password] => 
                    [payment_fee_info] => 
                    [paysys_callback_url] => 
                )
 
            [11] => Array
                (
                    [id] => 11
                    [agentid] => 3
                    [service_type] => Internet
                    [internal_paysys_name] => PBANKM_CHER
                    [internal_paysys_id] => 3
                    [internal_paysys_srv_id] => 1
                    [paysys_token] => 
                    [paysys_secret_key] => 
                    [paysys_password] => 
                    [payment_fee_info] => subscriber
                    [paysys_callback_url] => 
                )
 
            [6] => Array
                (
                    [id] => 6
                    [agentid] => 5
                    [service_type] => Internet
                    [internal_paysys_name] => EASYPAYM_RYS
                    [internal_paysys_id] => 
                    [internal_paysys_srv_id] => 
                    [paysys_token] => 
                    [paysys_secret_key] => 
                    [paysys_password] => 
                    [payment_fee_info] => 
                    [paysys_callback_url] => 
                )
 
            [5] => Array
                (
                    [id] => 5
                    [agentid] => 5
                    [service_type] => Internet
                    [internal_paysys_name] => CITY24M_RYS
                    [internal_paysys_id] => 
                    [internal_paysys_srv_id] => 
                    [paysys_token] => 
                    [paysys_secret_key] => 
                    [paysys_password] => 
                    [payment_fee_info] => 
                    [paysys_callback_url] => 
                )
 
            [9] => Array
                (
                    [id] => 9
                    [agentid] => 5
                    [service_type] => Internet
                    [internal_paysys_name] => PBANKM_RYS
                    [internal_paysys_id] => 5
                    [internal_paysys_srv_id] => 2
                    [paysys_token] => 
                    [paysys_secret_key] => 
                    [paysys_password] => 
                    [payment_fee_info] => subscriber
                    [paysys_callback_url] => 
                )
 
        )
)