Правильная ссылка на эту статью: |
WebMoney Report API SettingWrite
Метод SettingWrite - Установить параметры настройки для способов он-лайн доставки сформированных отчетов.¶
Параметры обращения в формате Json:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/SettingWrite
- метод – POST
- accept types: text/json
- формат запроса:
{"Login":"","Wmid":"","Culture":"","Signature":"","Settings":{"Wmid":"","Post":{"Zipcode":"","Country":"","Region":"","City":"","Address":"","Company":"","Receiver":""},"Delivery":{"Email":"","Timezones":55,"Encrypt":0,"Password":""}}}
Параметры обращения в формате Xml:
- URL для передачи запроса:
https://report.wmtransfer.com/api/v1/report.asmx/SettingWrite
- метод – POST
- accept types: text/xml
- формат запроса:
<Request> <Login></Login> <Wmid></Wmid> <Culture></Culture> <Signature></Signature> <Settings> <Wmid></Wmid> <Post> <Zipcode></Zipcode> <Country></Country> <Region></Region> <City></City> <Address></Address> <Company></Company> <Receiver></Receiver> </Post> <Delivery> <Email></Email> <Timezones>55</Timezones> <Encrypt>0</Encrypt> <Password></Password> </Delivery> </Settings> </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 + ';' + WmId + ';' + Zipcode + ';' + Country + ';' + Region + ';' + City + ';' + Address + ';' + Company + ';' + Receiver + ';' + Email + ';' + Timezones + ';' + Encrypt + ';' + Password Settings Секция задания Применяется для создания запроса WmId Wm идентификатор Содержит строку 12 символов Post Секция почтовых настроек Содержит параметры почтовой корреспонденции Zipcode Индекс "Строка от 0 до 255 символов, кодировка win-1251" Country Страна "Строка от 0 до 255 символов, кодировка win-1251" Region Область, край "Строка от 0 до 255 символов, кодировка win-1251" City Город "Строка от 0 до 255 символов, кодировка win-1251" Address Улица, дом, квартира, офис "Строка от 0 до 255 символов, кодировка win-1251" Company Компания "Строка от 0 до 255 символов, кодировка win-1251" Receiver Получатель "Строка от 0 до 255 символов, кодировка win-1251" Delivery Секция отправки интернет-отчетов Содержит параметры отправки интернет-отчетов Email E-mail "Строка от 0 до 255 символов, кодировка win-1251" Timezones Номер часового пояса Содержит целое десятичное число Encrypt Статус шифрования отчетов при отправки через e-mail Содержит значения: 0 - не шифровать, 1 - шифровать Password Пароль шифрования "Строка от 0 до 255 символов, кодировка win-1251"
- формат ответа (JSON):
{"Code":0,"Desc":"","Value":{"Wmid":"","Post":{"Zipcode":"","Country":"","Region":"","City":"","Address":"","Company":"","Receiver":""},"Delivery":{"Email":","Timezones":55,"Encrypt":0,"Password":""}}}
- формат ответа (XML):
<Response> <Code>0</Code> <Desc></Desc> <Value> <Wmid></Wmid> <Post> <Zipcode></Zipcode> <Country></Country> <Region></Region> <City></City> <Address></Address> <Company></Company> <Receiver></Receiver> </Post> <Delivery> <Email></Email> <Timezones>55</Timezones> <Encrypt>0</Encrypt> <Password></Password> </Delivery> </Value> </Response>
- параметры ответа:
Название Назначение Примечание Code Код состояния или ошибки 0 - запрос выполнен успешно (остальные значения в таблице код выполнения запроса) Desc Текстовое описание состояния или ошибки "Строка от 0 до 255 символов, кодировка win-1251" Value Результат Содержит ответ в зависимости от метода вызова WmId Wm идентификатор Содержит строку 12 символов Post Секция почтовых настроек Содержит параметры почтовой корреспонденции Zipcode Индекс "Строка от 0 до 255 символов, кодировка win-1251" Country Страна "Строка от 0 до 255 символов, кодировка win-1251" Region Область, край "Строка от 0 до 255 символов, кодировка win-1251" City Город "Строка от 0 до 255 символов, кодировка win-1251" Address Улица, дом, квартира, офис "Строка от 0 до 255 символов, кодировка win-1251" Company Компания "Строка от 0 до 255 символов, кодировка win-1251" Receiver Получатель "Строка от 0 до 255 символов, кодировка win-1251" Delivery Секция отправки интернет-отчетов Содержит параметры отправки интернет-отчетов Email E-mail "Строка от 0 до 255 символов, кодировка win-1251" Timezones Номер часового пояса Содержит целое десятичное число Encrypt Статус шифрования отчетов при отправки через e-mail Содержит значения: 0 - не шифровать, 1 - шифровать Password Пароль шифрования "Строка от 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 RequestSettingWrite = new { Login = login, Wmid = wmid, Culture = culture, Signature = HashToBase64(String.Format("{0};{1};{2};{3}", login, password, culture, wmid)), Settings = new { Wmid = WmId, Post= new { Zipcode = zipcode, Country = country, Region = region, City = city, Address = address, Company = company, Receiver = receiver}, Delivery = new { Emai = email, Timezones = timezones, Encrypt = encryp, Password = password } }; string Response = ReportHandler("SettingWrite ", ForceJson(RequestSettingWrite)); 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