За допомогою відповідної опції
GOOSE_RESISTANCE=1
Ну для початку, можна на нього натискати
Щоб дізнатись, що в нас нема жодних стратегій
Тут ми можемо створювати “стратегії”
Звичайно ми можемо створити довільну кількість стратегій гуся
Опція “Використання прив'язок” в купі з значенням “Основний контрагент” напряму впливає на те, як вибиратиметься стратегія відносно базових прив'язок контрагентів, котрі описуються опціями AGENTS_ASSIGN та DEFAULT_ASSIGN_AGENT. У випадку, якщо чекбокс “Використання прив'язок” знято - стратегія просто собі є і є.
Кожну з них нам обов'язково необхідно налаштувати, додавши в неї всіх(!) контрагентів які будуть приймати в ній участь
Тип “розподілу” може мати наступні значення:
Також за необхідності, для кожного контрагента в рамках кожної окремої стратегії, ми можемо заповнити низку користувацьких даних, якось так:
Також ми у будь-який момент, можемо провести натурне тестування наших стратегій
Та прослідкувати за розподілом коштів в рамках стратегії
Тут варто зазначити, що в даному прикладі користувач проживає на вулиці “Бандери”. А вона у нас де? Вірно, ось тут:
Тобто шлях вирішення того, яку стратегію буде обрано для конкретного користувача був “користувач⇒Адреса⇒Статична прив'язка / Контрагент за адресою / чи агент за замовчуванням⇒Стратегія”. У випадку, якщо б цей користувач був примусово прив'язаний до основного контрагента іншої стратегії
то і результат тестування виглядав би якось трішки інакше
У випадку, якщо не вдалось визначити стратегію на основі “Використання прив`язок” + “Основний контрагент” буде використано першу ж наявну стратегію, незалежно від її типу. Коротше всі стратегії є “Користуваче-центричними”. Також в стратегії є параметр “Тариф”. Він має пріоритет над усім іншим та ігнорує легасі-прив'язки. Тобто, якби в попередньому прикладі в користувача навіть за наявності адресного присвоєння чи присвоєного вручну контрагента був би призначений тариф Turbo - для нього було б застосовано стратегію з ID 3.
Що до порядку обробки “Розподілу коштів”, обробляються вони завжди в наступному порядку, зверху вниз:
Можливі параметри виклику з 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] => ) ) )