WebMoney Report API ScheduledSelect

Метод ScheduledSelect - Список созданных заявок на формирование плановых отчетов.

Параметры обращения в формате Json:

  • URL для передачи запроса:
    https://report.wmtransfer.com/api/v1/report.asmx/ScheduledSelect 
  • метод – POST
  • accept types: text/json
  • формат запроса:
    {"Login":"","Wmid":"","Culture":"","Signature":","Job":{"Scheduled":{"Report":{"Id":0,"Purse":"","Period":1,"Begin":"","Delivery":0,"Format":1,"Method":1}}}}
    

Параметры обращения в формате Xml:

  • URL для передачи запроса:
    https://report.wmtransfer.com/api/v1/report.asmx/ScheduledSelect 
  • метод – POST
  • accept types: text/xml
  • формат запроса:
    <Request>
    <Login></Login>
    <Wmid></Wmid>
    <Culture></Culture>
    <Signature></Signature>
    <Job>
      <Scheduled>
        <Report>
         <Id>0</Id>
         <Purse></Purse>
         <Period>1</Period>
         <Begin></Begin>
         <Delivery>0</Delivery>
         <Format>1</Format>
         <Method>1</Method>
        </Report>
       </Scheduled>
    </Job>
    </Request> 
    
  • параметры запроса:
    Название Назначение Примечание
    Login Логин Получен на странице доступа к API и используется для подписи запросов к сервису WebMoney Report API
    Password Пароль Получен на странице доступа к API и используется для подписи запросов к сервису WebMoney Report API
    Wmid WMID WM идентификатор при работе с сервисом WebMoney Report API
    Culture Язык запроса Определяет язык сообщения. (ru-RU, en-US)
    Signature Подпись запроса Формируется из параметров: Login+ ';' + Password+ ';' + Culture+ ';' + Wmid + ';' +Id + ';' +Purse + ';' + Period + ';' + Begin + ';' + Delivery + ";" + Format + ";" + Method
    Job Секция задания Применяется для создания запроса
    Scheduled Секция плановых отчетов Применяется для создания параметров запроса
    Report Секция параметров отчета Применяется для задания критериев отбора плановых отчетов
    Id Номер отчета Содержит целое десятичное число по раннее созданному заданию. При отсутствии номера отчета задается 0
    Purse Кошелек Содержит кошелек клиента по раннее созданному заданию. Содержит строку 13 символов. При отсутствии задается пустой строкой
    Period Периодичность Содержит значения: 1 - раз в день, 2 - раз в неделю, 3 -раз в месяц по раннее созданному заданию. При отсутствии Purse и Id равным 0, будут отобраны все отчеты относительно данного критерия
    Begin Дата Содержит строку. Формат: YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня по раннее созданному заданию. При отсутствии Purse и Id равным 0, будут отобраны все отчеты относительно данного критерия
    Delivery Тип доставки Содержит значения: 0 - через интернет, 1 - по почте и через интернет (платно) по раннее созданному заданию. При отсутствии Purse и Id равным 0, будут отобраны все отчеты относительно данного критерия
    Format Формат отчета Содержит значения: 0 - HTML, 1 - PDF, 2 - CSV по раннее созданному заданию. При отсутствии Purse и Id равным 0, будут отобраны все отчеты относительно данного критерия
    Method Способ доставки Содержит значения: 0 - e-mail, 1 - files.webmoney.ru по раннее созданному заданию. При отсутствии Purse и Id равным 0, будут отобраны все отчеты относительно данного критерия
  • формат ответа (JSON):
    {"Code":0,"Desc":"","Value":[{"Id":0,"Purse":"","Period":1,"Begin":"","Delivery":0,"Format":1,"Method":1}]}
    
  • формат ответа (XML):
    <Response>
    <Code>0</Code>
    <Desc></Desc>
    <Value>
     <Id>0</Id>
     <Purse></Purse>
     <Period>1</Period>
     <Begin></Begin>
     <Delivery>0</Delivery>
     <Format>1</Format>
     <Method>1</Method>
    </Value>
    </Response>
    
  • параметры ответа:
    Название Назначение Примечание
    Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251"
    Value Результат Содержит ответ в зависимости от метода вызова
    Id Номер отчета Содержит целое десятичное число
    Purse Кошелек Содержит строку 13 символов
    Period Периодичность Содержит значения: 1 - раз в день, 2 - раз в неделю, 3 -раз в месяц
    Begin Дата Содержит строку. Формат: YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня
    Delivery Тип доставки Содержит значения: : 0 - через интернет, 1 - по почте и через интернет (платно)
    Format Формат отчета Содержит значения: 0 - HTML, 1 - PDF, 2 - CSV
    Method Способ доставки Содержит значения: 0 - e-mail, 1 - files.webmoney.ru
  • код выполнения запроса:
    код возврата описание
    0 Запрос выполнен успешно
    1 Запрос ранее принят и находится в обработке
    2 Запрос ранее обработан
    3 Список отчетов согласно критериев запроса пуст
    -1 Вызов веб сервиса завершился ошибкой
    -2 Пользователь не аутентифицирован
    -3 Доступ закрыт
    -4 Подпись запроса сформирована не верно
    -5 Не корректная дата
    -6 Неизвестная ошибка
    -7 Неверный аргумент (передан хотя бы один некорректный аргумент)
    -8 Сервис временно не доступен
    -9 Доступ запрещен
    -10 Ошибочные аргументы запроса
    -11 Ошибочные кошелек
    -12 Кошелек не принадлежит WmId при работе с сервисом WebMoney Report API
    -13 Ошибочные тип отчета
    -14 Ошибочные тип доставки отчета
    -15 Ошибочные формат отчета
    -16 Ошибочные формат доставки отчета
    -17 Некорректная дата начала запроса
    -18 Некорректная дата конца запроса
    -19 Некорректный временной интервал запроса
    -20 Ошибочная операция
    -21 Некорректный временной интервал
    -22 Задание не создано. Обратитесь позже
  • пример C# :
    protected string Login= "Получить на странице доступа к API";
    protected string Password = ""Получить на странице доступа к API";
    protected string Culture ="ru-RU";

    var RequestScheduledSelect  = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)),  
                                                        Job= new { Scheduled = new {  Report = new  { Id = id, Purse = purse , Period = period, Begin = begin , Delivery = delivery, Format = format, Method= method} }
                                                      };

    string Response = ReportHandler("ScheduledSelect",  ForceJson(RequestScheduledSelect));

    public string ReportHandler(string method, string json)
    {
      Stream receiveStream = null;
      Stream requestStream = null;
      StreamReader readStream = null;
      StringWriter swXml = null;
      HttpWebResponse response = null;
      try
      {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + method);

        if (Proxy.Length > 0)
        {
          request.Proxy = new WebProxy(Proxy, true);
          request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
          request.PreAuthenticate = true;
        }
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.Accept = "text/json";
        byte[] body = Encoding.UTF8.GetBytes(Server.UrlEncode(json));
        request.ContentLength = body.Length;

        requestStream = request.GetRequestStream();
        requestStream.Write(body, 0, body.Length);
        requestStream.Close();

        using ( response = (HttpWebResponse)request.GetResponse())
        {
          receiveStream = response.GetResponseStream();
          using (swXml = new StringWriter())
          {
            using (readStream = new StreamReader(receiveStream, Encoding.UTF8))
            {
              swXml.Write(readStream.ReadToEnd());
            }
            return (swXml.GetStringBuilder().ToString());
          }
        }
      }
      catch (WebException we)
      {
        return string.Empty;
      }
      finally {
        if (requestStream != null) requestStream.Close();
        if (receiveStream != null) receiveStream.Close();
        if (readStream != null) readStream.Close();
        if (swXml != null) swXml.Close();
        if ( response != null )  response.Close();
      }
    }

    static public string ForceJson(object res)
    {
        JavaScriptSerializer js = new JavaScriptSerializer();
        return ( js.Serialize(res) ); 
    }

     static public byte[] Hash(string plainString, Encoding encoding)
    {
      if (plainString == null)
        throw new ArgumentNullException("plainString");

      if (encoding == null)
        encoding = Encoding.UTF8;

      return Hash(encoding.GetBytes(plainString));
    }

    static public byte[] Hash(byte[] bytes)
    {
      if (bytes == null)
        throw new ArgumentNullException("bytes");
      using (SHA256 algorithm = new SHA256Managed())
      {
        byte[] hashBytes = algorithm.ComputeHash(bytes);
        return hashBytes;
      }
    }

    public string HashToBase64(string plainString, Encoding encoding)
    {
      if (plainString == null) throw new ArgumentNullException("plainString");
      return Convert.ToBase64String(Hash(plainString, encoding));
    }
  
* Пример использования интерфейса: JavaScript