Правильная ссылка на эту статью: |
WebMoney Report API TimezoneList
Метод TimezoneList - Список часовых поясов¶
Параметры обращения в формате Json:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/TimezoneList
- метод – POST
- accept types: text/json
- формат запроса:
{"Login":"","Wmid":"","Culture":"","Signature":""}
Параметры обращения в формате Xml:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/TimezoneList
- метод – 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":[{"Id":1,"Name":""},...,{"Id":99,"Name":""}]}
- формат ответа (XML):
<Response> <Code>0</Code><Desc>Success</Desc> <Value><Id>1</Id><Name></Name></Value> ..., <Value><Id>99</Id><Name></Name></Value> </Response>
- параметры ответа:
Название Назначение Примечание Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса) Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251" Value Результат Содержит ответ в зависимости от метода вызова Id Номер часового пояса Содержит целое десятичное число Name Описание часового пояса "Строка от 0 до 255 символов, кодировка win-1251"
- код выполнения запроса:
код возврата описание 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 RequestTimezoneList = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)) }; string Response = ReportHandler("TimezoneList", ForceJson(RequestTimezoneList)); 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