За допомогою відповідної опції
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] => ) ) )