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