DebtMart API MyDebtors

Метод MyDebtors- Список должников

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

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

  • параметры запроса:
    Название Назначение Примечание
    Login Логин Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    Password Пароль Получен на странице доступа к API и используется для подписи запросов к бирже Debtmart
    wmid WMID WM идентификатор при работе с бирже Debtmart
    Culture Язык запроса Определяет язык сообщения. (ru-RU, en-EN)
    Signature Подпись запроса Формируется из параметров: Login+ ';' + Password+ ';' + Culture+ ';' +Wmid
  • формат ответа (Json):
    {"code":0,"desc":"Success","value":{"id":0,"wmid":"","debtor":"","amount":"","date":"","state":"","price":"","country":"","city":""}}
    
  • формат ответа (Xml):
    <Response>
    <сode>0</сode>
    <desc>Success</desc>
    <value>
      <id>0</id>
      <wmid></wmid>
      <debtor></debtor>
      <amount></amount>
      <date></date>
      <state></state>
      <price></price>
      <country></country>
      <city></city>
    </value>
    ...
    <value>
      <id>0</id>
      <wmid></wmid>
      <debtor></debtor>
      <amount></amount>
      <date></date>
      <state></state>
      <price></price>
      <country></country>
      <city></city>
    </value>
    </Response> 
    
  • параметры ответа:
    Название Назначение Примечание
    code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса)
    desc Текстовое описание ошибки "строка от 0 до 255 символов, кодировка win-1251"
    value Результат содержит ответ в зависимости от метода вызова
    id Номер обязательства Номер обязательства. Содержит целое десятичное число
    wmid WMID WM идентификатор должника. Содержит строку 12 символов
    debtor ФИО ФИО должника. Содержит строку от 1-255 символов
    amount Сумма обязательства, WMZ Число с плавающей точкой (разделитель - .(точка) )
    date Дата и время сделки Временной интервал, формат DD/MM/YYYY HH:MM, где YYYY – число года, MM – число месяца, DD – число дня, HH - часы, MM - минуты
    state Статус документов Содержит строку
    price Сумма сделки Число с плавающей точкой (разделитель - .(точка) )
  • код выполнения запроса:
    код возврата описание
    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/";

    string Response = Handler("MyDebtors", ForceJson(RequestMyDebtors));

   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