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