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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Відео
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

xmlagent

XMLAgent

Для зовнішніх програм, що взаємодіють з кабінетом користувача, підтримується окреме REST API. Отримати доступ до нього можна за допомогою таких URL:

  • ?xmlagent=true - нутрощі користувача
  • ?xmlagent=true&payments=true - попередні оплати користувача
  • ?xmlagent=true&announcements=true - активні(публічні) оголошення кабінету користувача
  • ?xmlagent=true&tickets=true - всі тікети користувача та відповіді на них
  • ?xmlagent=true&opayz=true - доступні користувачу онлайнові платіжні засоби
  • ?xmlagent=true&agentassigned=true - дані контрагента, асоційованого з користувачем
  • ?module=creditor&agentcredit=true&justcheck=true - просто перевірити можливість встановлення кредиту
  • ?module=creditor&agentcredit=true - попросити кредит на декілька днів
  • ?module=paycards&agentpaycards=true&paycard=cardnumber - поповнити рахунок карткою поповнення з номером cardnumber

За замовчуванням, відповіді XMLAgent історично, будуть повернуті у вигляді даних XML. Також можливе додавання GET параметра json=true для отримання даних у вигляді JSON-масиву.

Авторизація

У випадку, якщо ви не хочете покладатися на примусову авторизацію користувачів за їх IP, наприклад використовуючи вашу додаток поза мережею, ви можете використовувати примусову авторизацію конкретного користувача, для всіх запитів прямим вказанням логіну та MD5 хешу паролю у вигляді наступних GET змінних:

  • uberlogin
  • uberpassword

І як приклад авторизації користувача з логіном gen_vj7iyagnzj та паролем codr52mv

?xmlagent=true&uberlogin=gen_vj7iyagnzj&uberpassword=614e8c88061bc45a75fdc1b2eefe1e84

У разі помилки авторизації, ви отримаєте відповідь у вигляді прямого рядка

ERROR_WRONG_UBERAUTH

з HTTP кодом 401 (починаючи з релізу Ubilling 1.2.7)

Примусова авторизація має пріоритет перед усіма стандартними типами авторизації, такими як ip,login,both.

Також ви можете автоматично авторизувати користувача у вашому Telegram-боті, використовуючи посилання вигляду

https://t.me/yourbot/?start=логін_користувача-md5_хеш_паролю

Так, розділювач - символ “-”. Вони можуть автоматично генеруватися кабінетом.

Приклади запитів та відповідей

Загальні дані користувача

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true
<?xml version="1.0" encoding="utf-8"?>
<userdata>
	<address>Зловісненськ Шевченка 56/1</address>
	<realname>Федір Крюгер</realname>
	<login>zlo_hev11ap8_0nt6</login>
	<cash>315</cash>
	<ip>172.30.0.2</ip>
	<phone>26666</phone>
	<mobile>0506661488</mobile>
	<email>fred@ourisp.ua</email>
	<credit>0</credit>
	<creditexpire>No</creditexpire>
	<payid>2887647234</payid>
	<contract>666</contract>
	<tariff>Unlim-100</tariff>
	<tariffnm>No</tariffnm>
	<traffdownload>0 b</traffdownload>
	<traffupload>0 b</traffupload>
	<trafftotal>0 b</trafftotal>
	<accountstate>active</accountstate>
	<accountexpire>102</accountexpire>
	<currency>UAH</currency>
	<version>1</version>
</userdata>

Загальні дані користувача але з примусовою авторизацією

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&uberlogin=gen_vj7iyagnzj&uberpassword=614e8c88061bc45a75fdc1b2eefe1e84
<?xml version="1.0" encoding="utf-8"?>
<userdata>
  <address>Зловісненськ В`язів 56/36</address>
  <realname>Герасим Герасименко</realname>
  <login>gen_vj7iyagnzj</login>
  <cash>0</cash>
  <ip>172.30.0.37</ip>
  <phone>866270</phone>
  <mobile>3808268045</mobile>
  <email/>
  <credit>0</credit>
  <creditexpire>No</creditexpire>
  <payid>3055434878</payid>
  <contract/>
  <tariff>Unlim-100</tariff>
  <tariffalias>Unlim-100</tariffalias>
  <tariffnm>No</tariffnm>
  <traffdownload>0 b</traffdownload>
  <traffupload>0 b</traffupload>
  <trafftotal>0 b</trafftotal>
  <accountstate>active</accountstate>
  <accountexpire>No</accountexpire>
  <currency>UAH</currency>
  <version>1</version>
</userdata>

Інформація про попередні платежі користувача

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&payments=true
<?xml version="1.0" encoding="utf-8"?>
<data>
<payment>
	<date>2020-01-13 13:26:11</date>
	<summ>50</summ>
	<balance>265</balance>
</payment>
<payment>
	<date>2017-05-25 12:28:43</date>
	<summ>45</summ>
	<balance>265</balance>
</payment>
<payment>
	<date>2015-06-05 15:59:00</date>
	<summ>10</summ>
	<balance>255</balance>
</payment>
<payment>
	<date>2015-03-30 13:41:25</date>
	<summ>100</summ>
	<balance>155</balance>
</payment>
<payment>
	<date>2014-06-24 18:17:59</date>
	<summ>50</summ>
	<balance>105</balance>
</payment>
<payment>
	<date>2011-10-08 16:03:25</date>
	<summ>50</summ>
	<balance>55</balance>
</payment>
<payment>
	<date>2011-09-30 18:58:21</date>
	<summ>5</summ>
	<balance>50</balance>
</payment>
<payment>
	<date>2011-09-03 20:50:30</date>
	<summ>50</summ>
	<balance>0</balance>
</payment>
</data>

Платежі користувача, але у вигляді JSON

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&payments=true&json=true

Активні оголошення кабінету користувача

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&announcements=true
<?xml version="1.0" encoding="utf-8"?>
<data>
<message unic="1" title="Ми всі помремо">це точно</message>
</data>

Усі тикети користувача

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&tickets=true
<?xml version="1.0" encoding="utf-8"?>
<data>
<ticket>
	<id>3</id>
	<date>2020-09-22 15:37:53</date>
	<from>_he12ap1_rkh2</from>
	<to></to>
	<replyid>1</replyid>
	<status>0</status>
	<text>user reply</text>
</ticket>
<ticket>
	<id>2</id>
	<date>2020-09-22 15:36:50</date>
	<from>NULL</from>
	<to>_he12ap1_rkh2</to>
	<replyid>1</replyid>
	<status>0</status>
	<text>admin reply</text>
</ticket>
<ticket>
	<id>1</id>
	<date>2020-09-22 15:36:36</date>
	<from>_he12ap1_rkh2</from>
	<to></to>
	<replyid></replyid>
	<status>1</status>
	<text>my ticket</text>
</ticket>
</data>

Платіжні системи OpenPayz

http://demo.ubilling.net.ua:9999/billing/userstats/?xmlagent=true&opayz=true
<?xml version="1.0" encoding="utf-8"?>
<data>
<paysys>
	<name>easypay</name>
	<url>http://op.ourisp.com/backend/easypay/?customer_id=3232235528</url>
	<description>VISA, MasterCard</description>
</paysys>
<paysys>
	<name>mypayprivat</name>
	<url>http://op.ourisp.com/backend/mypayprivat/?customer_id=3232235528</url>
	<description>VISA, MasterCard</description>
</paysys>
</data>

Кредитування

http://demo.ubilling.net.ua:9999/billing/userstats/?module=creditor&agentcredit=true

У разі успіху ми маємо отримати status 0:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<status>0</status>
	<message>success</message>
</data>

У разі виникнення помилки, отримаємо не нульовий ерроркод із поясненням причини. Наприклад такий, якщо функціонал кредитування відключений у кабінеті користувача зовсім.

<?xml version="1.0" encoding="utf-8"?>
<data>
	<status>1</status>
	<message>disabled</message>
</data>

Або наприклад, якщо користувач вже використовував кредит у поточному місяці:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<status>9</status>
	<message>already used in this month</message>
</data>

Або як приклад, те саме але в JSON:

http://demo.ubilling.net.ua:9999/billing/userstats/?module=creditor&agentcredit=true&json=true

Відповідь:

{"status":2,"message":"wrong day"}

Також ви можете здійснити перевірку “тупо можливості” встановлення кредиту, без власне установки його. Існує додатковий параметр justcheck=true. Відповіді, що повертаються - ті ж. Використовуватися це повинно як:

http://demo.ubilling.net.ua:9999/billing/userstats/?module=creditor&agentcredit=true&justcheck=true

Можливі коди помилок:

  • 0 - все пройшло успішно (success)
  • 1 - кредитування вимкнено конфігурацією (disabled)
  • 2 - неприпустимий день для кредитування (wrong day)
  • 3 - кредит вже встановлений (already have a credit)
  • 4 - акаунт заморожений (account frozen)
  • 5 - грошей на рахунку достатньо, щоб жити без кредиту (too much money)
  • 6 - занадто мало грошей на рахунку для того, щоб жити в кредит (not enough money)
  • 7 - несподівана помилка (unexpected error)
  • 8 - кредитування не доступне на поточному тарифі (not allowed on this tariff)
  • 9 - вже користувалися кредитуванням у поточному місяці (already used in this month)
  • 10 - не погасили попередній борг (not paid previous)

Починаючи з релізу Ubilling 1.2.0 набір полів, що повертаються на виклики agentcredit істотно розширено:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<status>2</status>
	<message>wrong day</message>
	<fullmessage>Ви можете скористатись цією послугою тільки між 1 та 3 днями місяця</fullmessage>
	<minday>1</minday>
	<maxday>3</maxday>
	<creditterm>3</creditterm>
	<creditprice>5</creditprice>
	<currency>UAH</currency>
	<creditintro>Якщо так сталось і ви не змогли оплатити послугу вчасно, ви можете отримати кредит терміном на  3 доби. Вартість цієї послуги становить: 5 UAH. Також ви зобов`язуєтесь оплатити послуги за поточний місяць у повному обсязі, відповідно до вашого тарифного плану. Додаткові послуги не підлягають кредитуванню.</creditintro>
</data>

А саме крім результату в status і message з текстом того, що відбувається, тепер також повертаються:

  • fullmessage - повне повідомлення про успіх чи помилку в локалі кабінету за замовчуванням
  • minday - початковий день можливості надання послуги кредитування
  • maxday - кінцевий день можливості надання послуги кредитування
  • creditterm - кількість днів на які буде надано кредит
  • creditprice - вартість послуги кредитування
  • currency - валюта кабінету користувача
  • creditintro - короткий опис послуги в локалі кабінету за замовчуванням

Картки поповнення

http://demo.ubilling.net.ua:9999/billing/userstats/?module=paycards&agentpaycards=true&paycard=2621506348983057

Якщо все пройшло успішно:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<result>true</result>
	<message>Card is successfully used</message>
</data>

У разі невдачі:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<result>false</result>
	<message>Invalid card</message>
</data>

Варто також зауважити, що параметр paycard може бути переданий як GET так і як змінна POST. Якщо він не був отриманий, ні в якому вигляді ми отримаємо наступний результат:

<?xml version="1.0" encoding="utf-8"?>
<data>
	<result>false</result>
	<message>No card number provided</message>
</data>

Асоційований з користувачем контрагент

<?xml version="1.0" encoding="utf-8"?>
<data>
<agentdata>
	<id>1</id>
	<bankacc>UA1549686521125763214747854</bankacc>
	<bankname>iBank</bankname>
	<bankcode>456522</bankcode>
	<edrpo>2564325</edrpo>
	<ipn>6546456456465</ipn>
	<licensenum>11213231</licensenum>
	<juraddr>Some city, Some street</juraddr>
	<phisaddr>Another city, Another street</phisaddr>
	<phone>+380501234567</phone>
	<contrname>ФОП Пупкин</contrname>
	<agnameabbr>Пуп</agnameabbr>
	<agsignatory>Пуп1</agsignatory>
	<agsignatory2>Пуп2</agsignatory2>
	<agbasis>Just because</agbasis>
	<agmail>some.mail@gmail.com</agmail>
	<siteurl>https://ubilling.net.ua</siteurl>
</agentdata>
</data>

XMLAgent вимкнено конфігурацією

У цьому випадку ми отримуємо помилку вигляду

<?xml version="1.0" encoding="utf-8"?>
<error>
	<reason>disabled</reason>
</error>

Ввімкнення

Потрібно включити відповідну опцію userstats.ini

 UBA_ENABLED=1
xmlagent.txt · Востаннє змінено: 2023/11/14 18:42 повз bobr