WebMoney

Wiki

DebtMart API SellOffers

Метод SellOffers - Список текущих обязательств на продажу

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

  • URL для передачи запроса – https://debtmart.wmtransfer.com/api/v1/debtmart.asmx/SellOffers
  • метод – POST
  • accept types: text/json
  • формат запроса:
    {"Login":"","Wmid":"","Culture":"","Signature":"","Debts":{"Wmid": "","MinPassportType":100,"MinAmount":"","MaxAmount":"","MinPercentage":0,"MaxPercentage":100,"Country":"","City":"","RCity":""}}
    

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

  • URL для передачи запроса – https://debtmart.wmtransfer.com/api/v1/debtmart.asmx/SellOffers
  • метод – POST
  • accept types: text/xml
  • формат запроса:
    <Request>
    <Login></Login>
    <Wmid></Wmid>
    <Culture></Culture>
    <Signature></Signature>
    <Debts>
       <Wmid></Wmid>
       <MinPassportType>100</MinPassportType>
       <MinAmount></MinAmount>
       <MaxAmount></MaxAmount>
       <MinPercentage>0</MinPercentage>
       <MaxPercentage>100</MaxPercentage>
       <Country></Country>
       <City></City>
       <RCity></RCity>
    </Debts>
    </Request>
    
  • параметры запроса:
    Название Назначение Примечание
    Login Логин Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    Password Пароль Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    wmid WMID WM идентификатор при работе с бирже Debtmart
    Culture Язык запроса Определяет язык сообщения. (ru-RU, en-EN)
    Signature Подпись запроса Формируется из параметров: Login+ ';' + Password+ ';' + Culture+ ';' +Wmid
    Debts Критерии поиска Применяется для поиска обязательств
    Wmid WMID должника Необязательный параметр, применяется для поиска обязательств по WM идентификатору
    MinPassportType Тип аттестата должника Необязательный параметр, применяется для поиска обязательств по типу аттестату. Допустимые значения: 100 - аттестат псевдонима и выше, 110 - формальный аттестат и выше, 120 - начальный аттестат и выше, 130 - персональный аттестат и выше
    MinAmount Минимальная сумма обязательств Необязательный параметр, применяется для поиска обязательств по сумме. Число от 0.01 и выше
    MaxAmount Максимальная сумма обязательств Необязательный параметр, применяется для поиска обязательств по сумме. Число от 0.01 и выше
    MinPercentage Минимальная цена продажи, WMZ Необязательный параметр, применяется для поиска обязательств по цена продажи, WMZ. Число от 0.01 и выше
    MaxPercentage Максимальная цена продажи, WMZ Необязательный параметр, применяется для поиска обязательств по цена продажи, WMZ. Число от 0.01 и выше
    Country Страна места жительства Необязательный параметр, применяется для поиска обязательств по стране места жительства
    City Город места жительства Необязательный параметр, применяется для поиска обязательств по городу места жительства
    RCity Город места регистрации Необязательный параметр, применяется для поиска обязательств по городу места регистрации
  • формат ответа (Json):
    {"code":0,"desc":"","value":{"id":0,"wmid":"","debtor":"","tid":100,"max":"","min":"","amount":"", "country":"","city":"","rcity":"","rate":0,"sell":""}}
    
  • формат ответа (Xml):
    <Response>
    <сode>0</сode>
    <desc>Success</desc>
    <value>
      <id>0</id>
      <wmid></wmid>
      <debtor></debtor>
      <tid>100</tid>
      <max></max>
      <min></min>
      <amount></amount>
      <country></country>
      <city></city>
      <rcity></rcity>
      <rate></rate>
      <sell></sell>
    </value>
      ... 
    <value>
      <id>0</id>
      <wmid></wmid>
      <debtor></debtor>
      <tid>100</tid>
      <max></max>
      <min></min>
      <amount></amount>
      <country></country>
      <city></city>
      <rcity></rcity>
      <rate></rate>
      <sell></sell>
    </value>
    </Response>
    
  • параметры ответа:
    Название Назначение Примечание
    code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    desc Текстовое описание ошибки "строка от 0 до 255 символов, кодировка win-1251"
    value Результат содержит ответ в зависимости от метода вызова
    id Номер обязательства Номер обязательства. Содержит целое десятичное число
    wmid WMID WM идентификатор кому принадлежит обязательство. Содержит строку 12 символов
    debtor ФИО ФИО кому принадлежит обязательство. Содержит строку от 1-255 символов
    tid Тип аттестата Тип аттестата кому принадлежит обязательство. Содержит целое десятичное число
    min Минимальная цена продажи, WMZ Число с плавающей точкой (разделитель - .(точка) )
    max Максимальная цена продажи, WMZ Число с плавающей точкой (разделитель - .(точка) )
    amount Сумма обязательства Число с плавающей точкой (разделитель - .(точка) )
    country Страна места жительства Содержит строку от 1-255 символов
    city Город места жительства Содержит строку от 1-255 символов
    rcity Город места регистрации Содержит строку от 1-255 символов
    rate Процент продажи Процент продажи от суммы обязательства Содержит целое десятичное число.
    sell WMID продавца WM идентификатор продавца обязательства. Содержит строку 12 символов
  • код выполнения запроса:
    код возврата описание
    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 RequestSellOffers  = new { 
                                     Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)),  
                                     Debts= new { Wmid = debtorwmid, MinPassportType = minpassporttype,  MinAmount =  minamount,  MaxAmount = maxamount,  MinPercentage =  minpercentage ,  MaxPercentage = maxpercentage ,   Country = country , City =  city, RCity =  rcity }
                                        };

   string Response = Handler("SellOffers ", ForceJson(RequestSellOffers));

   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