WebMoney

Wiki

DebtMart API MyDeals

Метод MyDeals - Список сделок

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

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

  • URL для передачи запроса – https://debtmart.wmtransfer.com/api/v1/debtmart.asmx/MyDeals
  • метод – POST
  • accept types: text/xml
  • формат запроса:
    <Request>
    <Login></Login>
    <Wmid></Wmid>
    <Culture></Culture>
    <Signature></Signature>
    <Deals>
      <From></From>
      <To></To>
    </Deals>
    </Request> 
    
  • параметры запроса:
    Название Назначение Примечание
    Login Логин Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    Password Пароль Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    wmid WMID WM идентификатор при работе с бирже Debtmart
    Culture Язык запроса Определяет язык сообщения. (ru-RU, en-EN)
    Signature Подпись запроса Формируется из параметров: Login+ ';' + Password+ ';' + Culture+ ';' +Wmid
    Deals Критерии поиска Применяется для поиска обязательств
    From Начальная дата временной интервал, формат YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня
    To Конечная дата временной интервал, формат YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня
  • формат ответа (Json):
    {"code":0,"desc":"Success","value":{"partner":"","price":"","id":0,"wmid":"","debtor":"","amount":"","date":"","state":"","type":""}}
    
  • формат ответа (Xml):
    <Response>
    <сode>0</сode>
    <desc>Success</desc>
    <value>
    <partner></partner>
    <price></price>
    <id>0</id>
    <wmid></wmid>
    <debtor></debtor>
    <amount></amount>
    <date></date>
    <state></state>
    <type></type>
    </value>
    </Response> 
    
  • параметры ответа:
    Название Назначение Примечание
    code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    desc Текстовое описание ошибки "строка от 0 до 255 символов, кодировка win-1251"
    value Результат содержит ответ в зависимости от метода вызова
    partner Контрагент WM идентификатор контрагент сделки. Содержит строку 12 символов
    price Объем сделки (WMZ) Число с плавающей точкой (разделитель - .(точка) )
    id Номер обязательства одержит целое десятичное число
    wmid WMID WM идентификатор должника. Содержит строку 12 символов
    debtor ФИО ФИО должника. Содержит строку от 1-255 символов
    amount Сумма обязательства, WMZ Число с плавающей точкой (разделитель - .(точка) )
    date Дата сделки формат DD/MM/YYYY, где YYYY – число года, MM – число месяца, DD – число дня
    state Стутас операции Допустимые значения: успех/ошибка
    type Тип операции Допустимые значения: покупка/продажа
  • код выполнения запроса:
    код возврата описание
    0 запрос выполнен успешно
    -1 Вызов веб сервиса завершился ошибкой
    -2 Пользователь не аутентифицирован
    -3 Ошибочная подпись запроса
    -4 Сервис не доступен
    -5 Внутренняя ошибка
    -6 Неизвестная ошибка
    -7 Неверный аргумент (передан хотя бы один некорректный аргумент)
    -8 Сервис временно не доступен
    -9 Доступ запрещен
    -10 Некорректный временной интервал
    -11 Ошибочные формат запроса
    -12 Ошибочные сontent- type запроса
  • пример C# :
    protected string Login= "Получить на странице доступа к API";
    protected string Password = ""Получить на странице доступа к API";
    protected string Culture ="ru-RU";
    protected  string Url = "https://debtmart.wmtransfer.com/api/v1/debtmart.asmx/";

    var RequestMyDeals  = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)),  Deals = new { From = from, To = to}};

    string Response = Handler("MyDeals ", ForceJson(RequestMyDeals  ));

   public string Handler(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