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

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


xmlagent

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
xmlagent [2024/04/03 11:09]
bobr [Списання коштів з рахунку користувача]
xmlagent [2025/03/16 14:36] (поточний)
bobr
Рядок 17: Рядок 17:
  
  
-За замовчуванням, відповіді XMLAgent історично, будуть повернуті у вигляді **XML-документу**. \\+За замовчуванням, відповіді XMLAgentісторично, будуть повернуті у вигляді **XML-документу**. \\
 Для отримання даних у вигляді **JSON-документу** просто додайте GET параметр **json=true**. Для отримання даних у вигляді **JSON-документу** просто додайте GET параметр **json=true**.
  
Рядок 23: Рядок 23:
 ====== Авторизація ====== ====== Авторизація ======
  
-У випадку, якщо ви не хочете покладатися на примусову авторизацію користувачів за їх IP, наприклад використовуючи вашу додаток поза мережею, ви можете використовувати примусову авторизацію конкретного користувача, для всіх запитів прямим вказанням логіну та MD5 хешу паролю у вигляді наступних GET змінних:+У випадку, якщо ви не хочете покладатися на примусову авторизацію користувачів за їх IP, наприклад використовуючи ваш додаток поза мережею, ви можете використовувати примусову авторизацію конкретного користувача прямим вказанням логіну та MD5 хешу паролю для всіх запитів у вигляді наступних GET змінних:
  
   * **uberlogin**   * **uberlogin**
Рядок 34: Рядок 34:
 ?xmlagent=true&uberlogin=gen_vj7iyagnzj&uberpassword=614e8c88061bc45a75fdc1b2eefe1e84 ?xmlagent=true&uberlogin=gen_vj7iyagnzj&uberpassword=614e8c88061bc45a75fdc1b2eefe1e84
 </code>  </code> 
 +
 +Починаючи з релізу 1.4.7 доступний додатковий базовий рівень так званої "розширеної" аутентифікації, яка використовує **MD5 хеш серійного номеру вашого інстансу UB** як додатковий аутентифікаційний токен, на кшталт [[remoteapi|RemoteAPI]]. Стан ввімкненості розширеної аутентифікації керується опцією [[userstats|userstats.ini]] - [[userstats#xmlagent_extended_auth_on|XMLAGENT_EXTENDED_AUTH_ON]]. \\
 +Аутентифікаційний токен передається відповідним GET-параметром **uberkey**. \\
 +Виглядає це все загалом якось так:
 +<code>
 +?xmlagent=true&uberlogin=gen_vj7iyagnzj&uberpassword=614e8c88061bc45a75fdc1b2eefe1e84&uberkey=6fde545feaaba6952d9cdba84ad26475
 +</code> 
 +Так, як бачимо авторизація за логіном/паролем користувача та розширена аутентифікація доволі чудово собі співіснують в рамках одного запиту. \\
 +Слід лише мати на увазі, що **авторизація за логіном/паролем користувача** є дещо опціональною і її вимагають далеко не всі запити - на відміну від **розширеної аутентифікації**, ввімкнення якої **зобов'язує** вас використовувати аутентифікаційний токен абсолютно для кожного запиту.
  
 У разі помилки авторизації, ви отримаєте відповідь у вигляді прямого рядка У разі помилки авторизації, ви отримаєте відповідь у вигляді прямого рядка
Рядок 276: Рядок 285:
 \\ \\
  
-===== Створення support-тікету (тобто запиту в техпідтримку)=====+===== Створення support-тікету (тобто запиту в техпідтримку) =====
  
 <code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&ticketcreate=true&tickettype=support_request&tickettext=U29tZSB0aWNrZXQgdGV4dCBmb3Igc3VwcG9ydCB0ZWFt</code> <code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&ticketcreate=true&tickettype=support_request&tickettext=U29tZSB0aWNrZXQgdGV4dCBmb3Igc3VwcG9ydCB0ZWFt</code>
  
 Так, ви все правильно здогадалися: параметр **tickettext** має містити текст тікету закодований у **BASE64**. \\ Так, ви все правильно здогадалися: параметр **tickettext** має містити текст тікету закодований у **BASE64**. \\
-Цей запит повертає **created = success** та **ID** створеної заявки на підключення у разі успіху або **created = error** та **ID = 0** у разі невдачі.+Цей запит повертає **created = success** та **ID** створеної support-заявки разі успіху або **created = error** та **ID = 0** у разі невдачі. 
 + 
 +<code xml> 
 +<?xml version="1.0" encoding="utf-8"?> 
 +<data> 
 + <created>success</created> 
 + <id>9</id> 
 +</data> 
 +</code> 
 + 
 +==== Відповідь на support-тікет ==== 
 + 
 +<code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&ticketcreate=true&tickettype=support_request&reply_id=6&tickettext=U29tZSB0aWNrZXQgdGV4dCBmb3Igc3VwcG9ydCB0ZWFt</code> 
 + 
 +Все теж саме, що й у минулому запиті, крім додаткового параметру **reply_id=6**, що має містити **ID** тікета, на який дається відповідь. \\ 
 +**Слід мати на увазі**, що **reply_id** має буть саме IDшкою тікету, а не IDшкою якогось вже існуючого реплаю. Тобто, в такого запису в БД поле **replyid** має бути **нуль/NULL/пустим**. \\ 
 +Цей запит повертає **created = success** та **ID** створеної support-заявки разі успіху або **created = error** та **ID = 0** у разі невдачі.
  
 <code xml> <code xml>
Рядок 524: Рядок 549:
 </code> </code>
 \\ \\
 +
 +===== Тарифи, на які користувач може перейти в особистому кабінеті =====
 +<code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&tarifftoswitchallowed=true</code>
 +Потребує ввімкненого функціоналу самостійної зміни тарифу в особистому кабінеті користувача. \\
 +Так-так: оті всі опції **TC_*** з [[userstats|userstats.ini]] + [[tariffmatrix|tariffmatrix.ini]]. \\
 +Виклик повертає дані опції **TC_TARIFFSALLOWED**, якщо тариф користувача міститься в списку **TC_TARIFFENABLEDFROM** або відповідні дані з **tariffmatrix.ini** (знову ж таки, якщо його поточний тариф там фігурує). У всіх інших випадках виклик повертає **нічого**.
 +
 +<code xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<data>
 +    <tarifftoswitchallowed>
 +        <tariff>30M_50grn_FREE</tariff>
 +    </tarifftoswitchallowed>
 +    <tarifftoswitchallowed>
 +        <tariff>30M_70grn_Sale</tariff>
 +    </tarifftoswitchallowed>
 +    <tarifftoswitchallowed>
 +        <tariff>40M_Pon_150grn_N</tariff>
 +    </tarifftoswitchallowed>
 +    <tarifftoswitchallowed>
 +        <tariff>Mur_100M_150grn</tariff>
 +    </tarifftoswitchallowed>
 +</data>
 +</code>
 +\\
 +
  
 ===== Всі поточні активні тарифи та віртуальні сервіси провайдеру ===== ===== Всі поточні активні тарифи та віртуальні сервіси провайдеру =====
Рядок 561: Рядок 612:
 \\ \\
  
-===== XMLAgent вимкнено конфігурацією =====+====== Заморозка/розморозка користувача ====== 
 +===== Отримання даних про стан замороженості користувача ===== 
 +<code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&freezedata=true</code> 
 +<code xml> 
 +<freezedata> 
 +    <result>Success</result> 
 +    <message/> 
 +    <freezeSelfAvailable>1</freezeSelfAvailable> 
 +    <activationCost>13</activationCost> 
 +    <tariffsAllowedList>Unlim-5,NEW_40_150_grn</tariffsAllowedList> 
 +    <tariffAllowedAny>1</tariffAllowedAny> 
 +    <negativeBalanceFreezeAllowed/> 
 +    <userBalance>-180.677419</userBalance> 
 +    <userTariff>10M_200grn</userTariff> 
 +    <userTariffFreezePrice>30</userTariffFreezePrice> 
 +    <freezeStatus>frozen</freezeStatus> 
 +    <dateFrom>2025-02-25 17:30:34</dateFrom> 
 +    <dateTo>2025-03-23 17:03:34</dateTo> 
 +    <freezeDaysChargeActive>1</freezeDaysChargeActive> 
 +    <freezeDaysTotal>365</freezeDaysTotal> 
 +    <freezeDaysRestore>120</freezeDaysRestore> 
 +    <freezeDaysUsed>26</freezeDaysUsed> 
 +    <freezeDaysAvailable>339</freezeDaysAvailable> 
 +    <freezeDaysWorked>0</freezeDaysWorked> 
 +    <freezeDaysLeftToWork>120</freezeDaysLeftToWork> 
 +</freezedata> 
 +</code> 
 + 
 +===== Заморозка користувача ===== 
 +<code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&dofreeze=true</code> 
 +Тут все доволі просто: може вертати повідомлення або про успішність операції: 
 +<code xml> 
 +<dofreeze> 
 +    <result>Success</result> 
 +    <message>User 'SomeUserLogin' has been frozen</message> 
 +</dofreeze> 
 +</code> 
 + 
 +або про те, що користувач вже заморожений: 
 +<code xml> 
 +<dofreeze> 
 +    <result>Failure</result> 
 +    <message>User 'SomeUserLogin' is already frozen</message> 
 +</dofreeze> 
 +</code> 
 + 
 +===== Розморозка користувача ===== 
 +<code>http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&dounfreeze=true</code> 
 +Повністю ідентична по своїй суті процедура до попередньої - тільки рівно з протилежним результатом. Але є важливі нюанси: 
 +  * щоби цей виклик в принципі працював опція XMLAGENT_SELF_UNFREEZE_ALLOWED в userstats.ini має бути ввімкненою 
 +  * майте на увазі, що ця операція виконується "as is" - без усіляких додаткових перевірок(так, просто в тупу міняється статус користувача) і дозволяє доволі боляче вистрілити собі в ногу. Так що - використовуйте сугубо на власний розсуд. 
 + 
 +Успішне виконання поверне ось такий месседж: 
 +<code xml> 
 +<dofreeze> 
 +    <result>Success</result> 
 +    <message>User 'SomeUserLogin' has been UNfrozen</message> 
 +</dofreeze> 
 +</code> 
 + 
 +якщо ж користувач НЕ заморожений - поверне отаке: 
 +<code xml> 
 +<dofreeze> 
 +    <result>Failure</result> 
 +    <message>User 'SomeUserLogin' is already UNfrozen</message> 
 +</dofreeze> 
 +</code> 
 +\\ 
 + 
 +====== XMLAgent вимкнено конфігурацією ======
  
 У цьому випадку ми отримуємо помилку вигляду У цьому випадку ми отримуємо помилку вигляду
xmlagent.1712131756.txt.gz · Востаннє змінено: 2024/04/03 11:09 повз bobr