WebMoney Report API SettingRead

Метод SettingRead - Чтение параметров настройки для способов он-лайн доставки сформированных отчетов

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

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

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

  • URL для передачи запроса:
    https://report.wmtransfer.com/api/v1/report.asmx/SettingRead 
  • метод – POST
  • accept types: text/xml
  • формат запроса:
    <Request>
    <Login></Login>
    <Wmid></Wmid>
    <Culture></Culture>
    <Signature></Signature>
    <Settings>
     <Wmid></Wmid>
    </Settings>
    </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 + ';' + WmId
    Settings Секция задания Применяется для создания запроса
    WmId Wm идентификатор Содержит строку 12 символов
  • формат ответа (JSON):
    {"Code":0,"Desc":"","Value":{"Wmid":"","Post":{"Zipcode":"","Country":"","Region":"","City":"","Address":"","Company":"","Receiver":""},"Delivery":{"Email":","Timezones":55,"Encrypt":0,"Password":""}}}
    
  • формат ответа (XML):
    <Response>
    <Code>0</Code>
    <Desc></Desc>
    <Value>
      <Wmid></Wmid>
      <Post>
         <Zipcode></Zipcode>
         <Country></Country>
         <Region></Region>
         <City></City>
         <Address></Address>
         <Company></Company>
       <Receiver></Receiver>
      </Post>
      <Delivery>
        <Email></Email>
        <Timezones>55</Timezones>
        <Encrypt>0</Encrypt>
       <Password></Password>
      </Delivery>
    </Value>
    </Response> 
    
  • параметры ответа:
    Название Назначение Примечание
    Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251"
    Value Результат Содержит ответ в зависимости от метода вызова
    WmId Wm идентификатор Содержит строку 12 символов
    Post Секция почтовых настроек Содержит параметры почтовой корреспонденции
    Zipcode Индекс "Строка от 0 до 255 символов, кодировка win-1251"
    Country Страна "Строка от 0 до 255 символов, кодировка win-1251"
    Region Область, край "Строка от 0 до 255 символов, кодировка win-1251"
    City Город "Строка от 0 до 255 символов, кодировка win-1251"
    Address Улица, дом, квартира, офис "Строка от 0 до 255 символов, кодировка win-1251"
    Company Компания "Строка от 0 до 255 символов, кодировка win-1251"
    Receiver Получатель "Строка от 0 до 255 символов, кодировка win-1251"
    Delivery Секция отправки интернет-отчетов Содержит параметры отправки интернет-отчетов
    Email E-mail "Строка от 0 до 255 символов, кодировка win-1251"
    Timezones Часовой пояс Содержит целое десятичное число
    Encrypt Статус шифрования отчетов при отправки через e-mail Содержит значения: 0 - не шифровать, 1 - шифровать
    Password Пароль шифрования "Строка от 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 RequestSettingRead   = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)), Settings = new { Wmid= WmId} };

    string Response = ReportHandler("SettingRead",  ForceJson(RequestSettingRead ));

    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