Правильная ссылка на эту статью: |
DebtMart API MyDeals
Метод MyDeals - Список сделок¶
Параметры обращения в формате Json:
- URL для передачи запроса – https://debtmart.wmtransfer.com/api/v1/debtmart.asmx/MyDeals
- метод – POST
- accept types: text/json
- формат запроса:
{"Login":"","Wmid":"","Culture":"","Signature":"", "Deals": {"From": "","To":""}}
Параметры обращения в формате 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