| Правильная ссылка на эту статью: |
WebMoney Report API MinAllowedDate
MinAllowedDate - Минимально допустимая дата сервиса при создании плановых и одноразовых отчетов¶
Параметры обращения в формате Json:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/MinAllowedDate
- метод – POST
- accept types: text/json
- формат запроса:
{"Login":"","Wmid":"","Culture":"","Signature":""}
Параметры обращения в формате Xml:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/MinAllowedDate
- метод – POST
- accept types: text/xml
- формат запроса:
<Request> <Login></Login> <Wmid></Wmid> <Culture></Culture> <Signature></Signature> </Request>
- параметры запроса:
Название Назначение Примечание Login Логин Получен на странице доступа к API и используется для подписи запросов к сервису WebMoney Report API Password Пароль Получен на странице доступа к API и используется для подписи запросов к сервису WebMoney Report API Wmid WMID WM идентификатор при работе с сервисом WebMoney Report API Culture Язык запроса Определяет язык сообщения. (ru-RU, en-US) Signature Подпись запроса Формируется из параметров: Login+ ';' + Password+ ';' + Culture+ ';' + Wmid
- формат ответа (JSON):
{"Code":0,"Desc":"Success","Value":{"Date":""}}
- формат ответа (XML):
<Response> <Code></Code> <Desc></Desc> <Value> <Date></Date> </Value> </Response>
- параметры ответа:
Название Назначение Примечание Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса) Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251" Value Результат Содержит ответ в зависимости от метода вызова Date Минимальная дата Содержит строку. Формат: YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня
- код выполнения запроса:
код возврата описание 0 Запрос выполнен успешно 1 Запрос ранее принят и находится в обработке 2 Запрос ранее обработан 3 Список отчетов согласно критериев запроса пуст -1 Вызов веб сервиса завершился ошибкой -2 Пользователь не аутентифицирован -3 Доступ закрыт -4 Подпись запроса сформирована не верно -5 Не корректная дата -6 Неизвестная ошибка -7 Неверный аргумент (передан хотя бы один некорректный аргумент) -8 Сервис временно не доступен -9 Доступ запрещен -10 Ошибочные аргументы запроса -11 Ошибочные кошелек -12 Кошелек не принадлежит WmId при работе с сервисом WebMoney Report API -13 Ошибочные тип отчета -14 Ошибочные тип доставки отчета -15 Ошибочные формат отчета -16 Ошибочные формат доставки отчета -17 Некорректная дата начала запроса -18 Некорректная дата конца запроса -19 Некорректный временной интервал запроса -20 Ошибочная операция -21 Некорректный временной интервал -22 Задание не создано. Обратитесь позже
- пример C#:
protected string Login= "Получить на странице доступа к API";
protected string Password = ""Получить на странице доступа к API";
protected string Culture ="ru-RU";
var RequestMinAllowedDate = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)) };
string Response = ReportHandler("MinAllowedDate", ForceJson(RequestMinAllowedDate));
public string ReportHandler(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