API

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: API

Re: API

Сообщение anatooly » 2010-12-14 19:51:01

Или это посмотрите /hosts/billing/comp/www/Administrator/API/Config.comp

Re: API

Сообщение anatooly » 2010-12-14 13:50:23

Можно написать по аналогии к существующим, свою API, которая будет смотреть в Config.xml и возвращать нужный JSON ответ.

Re: API

Сообщение arpscan » 2010-11-22 1:43:06

Еще такой вопрос... Есть ли какой-то способ получить список активных платежных систем? Насколько я понял, информация об этом хранится в hosts/billing/config/Config.xml. На страницах биллинга его можно получить через $config.. И насколько я понял, в БД он не хранится. Вопрос: можно ли получить список активных платежных систем извне биллинга?

Re: API

Сообщение arpscan » 2010-11-21 20:08:52

Ок, всем спасибо за участие. Не отправлял SessionID в запросе к InvoiceMake =)

Re: API

Сообщение arpscan » 2010-11-20 21:34:30

В общем-то дебаг не навел ни на какие мысли... Возможно, какие-то проблемы с авторизацией запроса. Но перед его выполнением я авторизуюсь и получаю SessionID...

Дебаг (то, что касается InvoiceMake):
[20:27:25.03] [JBs core]: система работала: 0.074167013168335
[20:27:25.11] [JBs core]: запуск системы (20.11.10)
[20:27:25.11] [JBs core]: тип интерфейса сервера (apache2handler)
[20:27:25.11] [JBs core]: IP-адрес сервера (127.0.1.1)
[20:27:25.11] [JBs core]: версия PHP интерпретатора (5.3.3-1ubuntu9.1)
[20:27:25.11] [JBs core]: операционная система (Linux axelllap 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686)
[20:27:25.11] [JBs core]: система запущена от имени пользователя (www-data)
[20:27:25.11] [JBs core]: осуществлен запрос с адреса (127.0.1.1)
[20:27:25.11] [JBs core]: REQUEST_URI=(/API/InvoiceMake?ContractID=7&XMLHttpRequest=yes&PaymentSystemID=WebMoney+WMR&Summ=500.00)
[20:27:25.11] [JBs core]: PATH=(:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/axell/apache:/home/axell:/home)
[20:27:25.11] [JBs core]: загрузка автозагружаемых классов и библиотек
[20:27:25.11] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/billing/system/libs/auto/Permission.lib)
[20:27:25.11] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/billing/system/libs/auto/Notifies.lib)
[20:27:25.11] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/DB.lib)
[20:27:25.11] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Styles.lib)
[20:27:25.11] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/String.lib)
[20:27:25.12] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/IO.lib)
[20:27:25.12] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Comp.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/System.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Links.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Arrays.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/MemoryCache.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Messages.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Config.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Crypt.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Cache.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Standard.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Regulars.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/libs/auto/Args.lib)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/classes/auto/Exception.class)
[20:27:25.13] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/classes/auto/Tag.class)
[20:27:25.14] [JBs core]: загружается системный компонент (/home/axell/apache/hosts/root/system/classes/auto/MySQL.class)
[20:27:25.14] [JBs core]: внешний запрос сформирован как (__URI=/API/InvoiceMake)
[20:27:25.14] [JBs core]: загружается модуль (/home/axell/apache/hosts/billing/system/modules/auto/Redirects.mod)
[20:27:25.14] [JBs core]: загружается модуль (/home/axell/apache/hosts/billing/system/modules/auto/SetCookieSessionID.mod)
[20:27:25.14] [JBs core]: загружается модуль (/home/axell/apache/hosts/billing/system/modules/auto/SetCookieOwner.mod)
[20:27:25.14] [JBs core]: загружается модуль (/home/axell/apache/hosts/root/system/modules/auto/Security.mod)
[20:27:25.14] [Security module]: [проверка параметров]
[20:27:25.14] [Security module]: (ContractID) = (7)
[20:27:25.14] [Security module]: (XMLHttpRequest) = (yes)
[20:27:25.14] [Security module]: (PaymentSystemID) = (WebMoney WMR)
[20:27:25.14] [Security module]: (Summ) = (500.00)
[20:27:25.14] [JBs core]: загружается модуль (/home/axell/apache/hosts/root/system/modules/auto/Request.mod)
[20:27:25.14] [Request module]: [замена параметров]
[20:27:25.15] [MemoryCache_Get]: соединение с сервером кеширования установлено версия (1.4.5)
[20:27:25.15] [System_Load]: компонент системы (/home/axell/apache/hosts/root/system/classes/Session.class) был загружен
[20:27:25.16] [MySQL->Open]: связь как (root@localhost:3306) установлена
[20:27:25.16] [MySQL->Query]: SET NAMES `utf8`
[20:27:25.17] [MySQL->Query]: USE `jbs`
[20:27:25.17] [MySQL->Query]: SELECT `ID` FROM `Clauses` WHERE (`Partition` = '/API/InvoiceMake')
[20:27:25.17] [Exception]: [ROWS_NOT_FOUND]=(Записи не найдены)
[20:27:25.17] [!] [8]-Undefined index: SessionID в линии 36 файла /home/axell/apache/hosts/billing/system/modules/Main.mod
[20:27:25.18] [IO_Read]: открытие файла (/home/axell/apache/hosts/root/templates/Window.xml)
[20:27:25.18] [String_XML_Parse]: парсирование строки (245 bytes)
[20:27:25.20] [String_XML_Parse]: парсирование строки (610 bytes)
[20:27:25.21] [String_XML_Parse]: парсирование строки (193 bytes)
[20:27:25.21] [MySQL->Query]: SELECT `Value` FROM `Config` WHERE (`Param` = 'Copyright')
[20:27:25.23] [!] [8]-Undefined index: Email в линии 58 файла /home/axell/apache/core/Load.php(132) : eval()'d code
[20:27:25.26] [!] [1024]-[MemoryCache_Get]: не удалось извлечь объект в линии 93 файла /home/axell/apache/hosts/root/system/libs/auto/MemoryCache.lib
[20:27:25.26] [!] [1024]-[System_HostsIDs]: не удалось найти хосты для элемента (comp/Triggers/DOM/After/Window.comp) в линии 84 файла /home/axell/apache/hosts/root/system/libs/auto/System.lib
[20:27:25.26] [!] [1024]-[System_Element]: список хостов содержащих элемент не найдены в линии 103 файла /home/axell/apache/hosts/root/system/libs/auto/System.lib
[20:27:25.27] [JBs core]: система работала: 0.16612505912781

Re: API

Сообщение Виталий » 2010-11-20 12:11:48

Положите файл DEBUG в корень системы где и jbs-error.log, посмотрите какие запросы уходят в базу и какие ошибки.

Re: API

Сообщение arpscan » 2010-11-19 4:37:12

Добрый день!
Пробую создать счет через API, но что-то не получается. Регистрация, изменение учеток - все ок, а вот с созданием счета затык. Код по той же схеме, что и в других (работающих) случаях (например регистрация через /API/UserRegister).

Сначала регистрирую юзера через API, затем логинюсь опять через API, так что сессия создается и живет. Затем пытаюсь от имени этого пользователя создать себе новый счет:

Код: Выделить всё

function make_invoice($contractid, $summ) {
        $Args = Array(
               'ContractID'   => $contractid,
               'XMLHttpRequest' => 'yes',
               'PaymentSystemID'  => $_POST['PSystem'],
               'Summ'  => $summ
               );

   $Query = Http_Build_Query($Args);
   $Answer = @File_Get_Contents("http://testtest.com/API/InvoiceMake?".$Query."");
   if(!$Answer)
     return('Request error');
   #-------------------------------------------------------------------------------
   $Answer = @JSON_Decode($Answer,TRUE);
   if(!$Answer)
     return('Bad answer');
   #-------------------------------------------------------------------------------
   switch($Answer['Status']){
     case 'Error':
      #---------------------------------------------------------------------------
      $Error = $Answer['Error'];
      #---------------------------------------------------------------------------
      return($Error['String']);
     case 'Exception':
      #---------------------------------------------------------------------------
      $Exception = $Answer['Exception'];
      #---------------------------------------------------------------------------
      return($Exception['String']);
     case 'Ok':
      #---------------------------------------------------------------------------
      return "ok";
      #---------------------------------------------------------------------------
     default:
      return('Wrong status');
   }
}

echo make_invoice($contractid, $summ);


Запрос уходит как надо:
127.0.1.1 - - [19/Nov/2010:01:10:36 +0100] "GET /API/InvoiceMake?ContractID=8&XMLHttpRequest=yes&PaymentSystemID=WebMoney+WMR&Summ=500.00 HTTP/1.0" 200 6992 "-" "-"


Что имеем в итоге? Что бы я не послал в InvoiceMake - ответ всегда приходит Status = "Ok", а InvoiceID пустой. => счет не создается, в логи ничего по этому поводу не пишется. Не могу понять почему.
В случае с UserRegister, например, если посылаю какой-то параметр криво или не посылаю, то получаю ошибку в ответ. А InvoiceMake вообще не замечает этого и шлет "Ok"...

Заранее спасибо за помощь)

Re: API

Сообщение Alex Keda » 2010-10-27 14:51:02

запросом к базе.
но это от администратора

Код: Выделить всё

   $Request = SPrintF('http://'.$BillingHost.'/Administrator/API/SelectDB?SessionID=%s&XMLHttpRequest=yes&TableID=%s&ColumnsIDs[]=ID&ColumnsIDs[]=Name&ColumnsIDs[]=CostMonth&ColumnsIDs[]=QuotaDisk&ColumnsIDs[]=QuotaDomains&ColumnsIDs[]=QuotaDBs&ColumnsIDs[]=QuotaFTP&ColumnsIDs[]=QuotaEmail&ColumnsIDs[]=QuotaDisk&ColumnsIDs[]=PackageID&Conditions[]=ServersGroupId=1&Conditions[]=GroupId=1&Conditions[]=IsActive=yes&SortOn=CostMonth',$SessionID,'HostingSchemes');
   $HostingSchemesAnswer1 = GetAnswer ($Request);

Re: API

Сообщение anatooly » 2010-10-27 13:09:12

Как узнать баланс через АПИ текущего пользователя или стоимость услуги по ее ИД?

Re: API

Сообщение anatooly » 2010-10-25 18:19:55

Код: Выделить всё

$request  = sprintf('http://***/API/UserPersonalDataChange?XMLHttpRequest=yes&SessionID=%s&Email=%s&Name=%s&Sign=%s',
                            $_SESSION['SessionID'],
                            $Email,
                            urlencode($Name),
                            urlencode($Sign) );


Смена некоторых учетных данных пользователя.

Вернуться к началу