| Правильная ссылка на эту статью: |
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