WebMoney Report API TimezoneList

Метод TimezoneList - Список часовых поясов

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

  • URL для передачи запроса:
    https://report.wmtransfer.com/api/v1/report.asmx/TimezoneList 
  • метод – POST
  • accept types: text/json
  • формат запроса:
    {"Login":"","Wmid":"","Culture":"","Signature":""}
    

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

  • URL для передачи запроса:
    https://report.wmtransfer.com/api/v1/report.asmx/TimezoneList 
  • метод – POST
  • accept types: text/xml
  • формат запроса:
    <Request>
    <Login></Login>
    <Wmid></Wmid>
    <Culture></Culture>
    <Signature></Signature>
    </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
  • формат ответа (JSON):
    {"Code":0,"Desc":"Success","Value":[{"Id":1,"Name":""},...,{"Id":99,"Name":""}]}
    
  • формат ответа (XML):
    <Response>
    <Code>0</Code><Desc>Success</Desc>
    <Value><Id>1</Id><Name></Name></Value>
    ...,
    <Value><Id>99</Id><Name></Name></Value>
    </Response> 
    
  • параметры ответа:
    Название Назначение Примечание
    Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251"
    Value Результат Содержит ответ в зависимости от метода вызова
    Id Номер часового пояса Содержит целое десятичное число
    Name Описание часового пояса "Строка от 0 до 255 символов, кодировка win-1251"
  • код выполнения запроса:
    код возврата описание
    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 RequestTimezoneList  = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid))  };

    string Response = ReportHandler("TimezoneList",  ForceJson(RequestTimezoneList));

    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