Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Случайная статья
Видео
Помощь проекту
Люди

FAQ



Редактировать сайдбар

xmlagent

XMLAgent

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

  • ?xmlagent=true - внутренности пользователя
  • ?xmlagent=true&payments=true - предыдущие платежи пользователя
  • ?xmlagent=true&announcements=true - активные объявления кабинета пользователя
  • ?xmlagent=true&tickets=true - все тикеты пользователя и ответы на них
  • ?xmlagent=true&opayz=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

И как пример авторизации пользователя с логином zlo_hev11ap8_0nt6 и паролем 2a7jr0vp

?xmlagent=true&uberlogin=zlo_hev11ap8_0nt6&uberpassword=bc988f975800bec5d2a572c6b7618865

В случае ошибки авторизации, вы получите ответ в виде прямой строки

ERROR_WRONG_UBERAUTH

Принудительная авторизация имеет приоритет перед всеми стандартными типами авторизации, такими как 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>Зловещенск Шевченка 11/8</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=zlo_hev11ap8_0nt6&uberpassword=bc988f975800bec5d2a572c6b7618865
<?xml version="1.0" encoding="utf-8"?>
<userdata>
	<address>Зловещенск Безысходная 14/108</address>
	<realname>Герман Быков</realname>
	<login>gen_xmz0jd4420</login>
	<cash>152</cash>
	<ip>172.30.0.131</ip>
	<phone>342317</phone>
	<mobile>3808156010</mobile>
	<email></email>
	<credit>0</credit>
	<creditexpire>No</creditexpire>
	<payid>2887647363</payid>
	<contract></contract>
	<tariff>Unlim-5</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&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>

Платежные системы

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 Agent отключен конфигурацией

В этом случае мы получаем ошибку вида

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

Включение

Требуется включить соответствующую опцию в userstats.ini

 UBA_ENABLED=1
xmlagent.txt · Последние изменения: 2021/09/22 17:49 — nightfly