Користувальницькькі налаштування

Налаштування сайту


gooseresistance

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
gooseresistance [2024/10/02 18:13]
nightfly
gooseresistance [2024/11/05 01:22] (поточний)
pautina
Рядок 54: Рядок 54:
 {{:gres6.png|}} {{:gres6.png|}}
  
 +Також ми у будь-який момент, можемо провести натурне тестування наших стратегій
 +
 +{{:gres7.png|}}
 +
 +Та прослідкувати за розподілом коштів в рамках стратегії
 +
 +{{:gres8.png|}}
 +
 +Тут варто зазначити, що в даному прикладі користувач проживає на вулиці "Бандери". А вона у нас де? Вірно, ось тут: 
 +
 +{{:gres9.png|}}
 +
 +Тобто шлях вирішення того, яку стратегію буде обрано для конкретного користувача був "користувач=>Адреса=>Статична прив'язка / Контрагент за адресою / чи агент за замовчуванням=>Стратегія".
 +У випадку, якщо б цей користувач був примусово прив'язаний до основного контрагента іншої стратегії
 +
 +{{:gres10.png|}}
 +
 +{{:gres11.png|}}
 +
 +то і результат тестування виглядав би якось трішки інакше
 +
 +{{:gres12.png|}}
 +
 +У випадку, якщо не вдалось визначити стратегію на основі "Використання прив`язок" + "Основний контрагент" буде використано першу ж наявну стратегію, незалежно від її типу. Коротше всі стратегії є "Користуваче-центричними". Також в стратегії є параметр "Тариф". Він має пріоритет над усім іншим та ігнорує легасі-прив'язки. Тобто, якби в попередньому прикладі в користувача навіть за наявності адресного присвоєння чи присвоєного вручну контрагента був би призначений тариф Turbo - для нього було б застосовано стратегію з ID 3.
 +
 +Що до порядку обробки "Розподілу коштів", обробляються вони завжди в наступному порядку, зверху вниз:
 +
 +  - Абсолютне значення (від суми платежу віднімається значення)
 +  - Відсоток від суми (від суми платежу віднімається відсоток значення)
 +  - Відсоток від залишку (від залишку після п.1. та п.2. віднімається відсоток значення)
 +  - Залишки (все що залишилось після п.1., п.2. та п.3. поділене на кількість агентів з цим типом)
 +  - Жоден (завжди 0, просто створює присутність агента)
  
 ===== Для розробників ===== ===== Для розробників =====
  
-Можливі параметри: +Можливі параметри виклику з RemoteAPI
-  * username - логін користувача +  * **username** - логін користувача 
-  * paymentid - платіжний ID користувача +  * **paymentid** - платіжний ID користувача 
-  * amount - сума коштів платежу +  * **amount** - сума коштів платежу 
-  * stratid - примусово вказаний ID стратегії +  * **stratid** - примусово вказаний ID стратегії 
-  * runtime - виклик рантайму ліцензії+  * **runtime** - виклик рантайму ліцензії 
 + 
 +Ясно, що один з двох параметрів username чи paymentid, на ваш розсуд є обов'язковим.
  
 Запит: Запит:
  
 <code> <code>
-https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&username=sometestuser&amount=200+https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&username=sometestuser&amount=350
 </code> </code>
  
 Або:  Або: 
 <code> <code>
-https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&paymentid=123456789&amount=200+https://billing.isp.ua/?module=remoteapi&key=UBxxxxxxxxxxxx&action=goose&paymentid=123456789&amount=350
 </code> </code>
  
-Відповідь:+Коротко про те що відбувається в результатах та на що варто звертати увагу: 
 + 
 +  * **amount** -  (float) сума платежу 
 +  * **userlogin** - (string) очевидно  
 +  * **paymentid** - (string) теж очевидно 
 +  * **payopts** - (array) масив з ключами: 
 +    * **minamount** - (float) мінімально допустима сума платежу 
 +    * **maxamount** - (float) максимально допустима сума платежу 
 +    * **isvalid** - (bool) флажок, платіж в запиті є валідним відносно стратегії чи ніт? 
 +    * **amount** -(float) власне та ж сума платежу з запиту 
 +  * **agents** - (array) масив з вкладеними в нього нутрощами контрагентів з стратегії в форматі id=>дані кожного 
 +  * **user** - (array) масив з нутрощами користувача визначеного за параметрами запиту username чи paymentid якщо він існує 
 +  * **runtime** - (array) вже розпакований масив рантайму ліцензії, якщо її було викликано в запиті та її встановлено в системі 
 + 
 +//Зразок того, що міститься в включі agents:// 
 +<code php> 
 +  [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] => такі буковки тут теж працюють 
 +                        ) 
 + 
 +                ) 
 +                ..... 
 +</code> 
 + 
 +Особливу увагу добре би звернути там на ось ці поля:  
 +  * **splitamount** - (float) вже поділена сума для кожного 
 +  * **splittype** - (string) тип розподілу (absolute/percent/percentlef/leftovers/none) 
 +  * **splitvalue** - (int) значення розподілу 
 +  * **extinfo** - (array) легасі дані з AGENTS_EXTINFO_ON для кожного агенту 
 +  * **customdata** - (array) масив користувацьких даних у форматі ключ=>значення 
 + 
 + 
 + 
 +Повна відповідь JSON:
  
 <code> <code>
 { {
 +  "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": ""
 +    }
 +  }
 +}</code>
 +
 +Вона ж у вигляді прямого масиву
 +
 +<code php>
 Array Array
 ( (
     [amount] => 350     [amount] => 350
     [userlogin] => sometestuser     [userlogin] => sometestuser
 +    [paymentid] => 123456789
 +    [payopts] => Array
 +        (
 +            [minamount] => 50
 +            [maxamount] => 0
 +            [isvalid] => 1
 +            [amount] => 350
 +        )
 +
     [id] => 1     [id] => 1
     [name] => Базова стратегія     [name] => Базова стратегія
Рядок 88: Рядок 373:
     [primaryagentid] => 1     [primaryagentid] => 1
     [maxamount] =>      [maxamount] => 
 +    [tariff] => 0
     [agents] => Array     [agents] => Array
         (         (
Рядок 119: Рядок 405:
                         (                         (
                             [somekey] => somevalue                             [somekey] => somevalue
-                            [anotherkey] => anothervalue+                            [anotherkey] => такі буковки тут теж працюють
                         )                         )
  
Рядок 201: Рядок 487:
             [TariffChange] =>              [TariffChange] => 
             [Credit] => 0             [Credit] => 0
-            [Cash] => 0.75+            [Cash] => 666.75
             [ip] => 172.16.0.6             [ip] => 172.16.0.6
             [mac] => 98:de:d0:89:1e:31             [mac] => 98:de:d0:89:1e:31
Рядок 222: Рядок 508:
         (         (
         )         )
 +    [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] => 
 +                )
 +
 +        )
 ) )
  
 </code> </code>
gooseresistance.1727881992.txt.gz · Востаннє змінено: 2024/10/02 18:13 повз nightfly