Правильная ссылка на эту статью: |
WebMoney Report API ScheduledCreate
Метод ScheduledCreate - Создание заявки на формирование плановых отчетов¶
Параметры обращения в формате Json:- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/ScheduledCreate
- метод – POST
- accept types: text/json
- формат запроса:
{"Login":"","Wmid":"","Culture":"","Signature":","Job":{"Scheduled":{"Report":{"Purse":"","Period":1,"Begin":"","Delivery":0,"Format":1,"Method":1}}}}
Параметры обращения в формате Xml:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/ScheduledCreate
- метод – POST
- accept types: text/xml
- формат запроса:
<Request> <Login></Login> <Wmid></Wmid> <Culture></Culture> <Signature></Signature> <Job> <Scheduled> <Report> <Purse></Purse> <Period>1</Period> <Begin></Begin> <Delivery>0</Delivery> <Format>1</Format> <Method>1</Method> </Report> </Scheduled> </Job> </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 + ';' +Purse + ';' + Period + ';' + Begin + ';' + Delivery + ";" + Format + ";" + Method Job Секция задания Применяется для создания запроса Scheduled Секция плановых отчетов Применяется для создания параметров запроса Report Секция параметров отчета Применяется для создания отчетов Purse Кошелек Содержит строку 13 символов Period Периодичность Содержит значения: 1 - раз в день, 2 - раз в неделю, 3 -раз в месяц Begin Дата Содержит строку. Формат: YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня Delivery Тип доставки Содержит значения: 0 - через интернет, 1 - по почте и через интернет (платно) Format Формат отчета Содержит значения: 0 - HTML, 1 - PDF, 2 - CSV Method Способ доставки Содержит значения: 0 - e-mail, 1 - files.webmoney.ru
- формат ответа (JSON):
{"Code":0,"Desc":"","Value":[{"Id":0,"Purse":"","Period":1,"Begin":"","Delivery":0,"Format":1,"Method":1}]}
- формат ответа (XML):
<Response> <Code>0</Code> <Desc></Desc> <Value> <Id>0</Id> <Purse></Purse> <Period>1</Period> <Begin></Begin> <Delivery>0</Delivery> <Format>1</Format> <Method>1</Method> </Value> </Response>
- параметры ответа:
Название Назначение Примечание Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса) Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251" Value Результат Содержит ответ в зависимости от метода вызова Id Номер отчета Содержит целое десятичное число Purse Кошелек Содержит строку 13 символов Period Периодичность Содержит значения: 1 - раз в день, 2 - раз в неделю, 3 -раз в месяц Begin Дата Содержит строку. Формат: YYYYMMDD, где YYYY – число года, MM – число месяца, DD – число дня Delivery Тип доставки Содержит значения: : 0 - через интернет, 1 - по почте и через интернет (платно)) Format Формат отчета Содержит значения: 0 - HTML, 1 - PDF, 2 - CSV Method Способ доставки Содержит значения: 0 - e-mail, 1 - files.webmoney.ru
- код выполнения запроса:
код возврата описание 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 RequestScheduledCreate = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)), Job= new { Scheduled = new { Report = new { Purse = purse , Period = period, Begin = begin , Delivery = delivery, Format = format, Method= method} } }; string Response = ReportHandler("ScheduledCreate", ForceJson(RequestScheduledCreate)); 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