Claims API 1.05

Материал из wiki.Sletat.ru
Перейти к: навигация, поиск

Описание сервиса

Сервис для работы с online-заявками является стандартным веб-сервисом, который предоставляет WSDL документ с описанием всех методов и типов данных. Текущая версия сервиса работает только по протоколу HTTP. Для большей совместимости с различными клиентами сервис основан на SOAP версии 1.1. Взаимодействие с сервисом возможно одним из двух способов:

  • Как с обычным веб-сервисом посредством SOAP запросов, WSDL доступен.
  • Как с сервисом WCF (Windows Communication Foundation) — самый простой способ, если клиент под .NET Framework 3.5 или выше.

Логика обработки запросов не зависит от способа работы с сервисом. При передаче строк и XML пакетов используется кодировка UTF-8. Сервис не требует сессий при работе с ним, и все методы не зависят друг от друга с точки зрения очередности вызова. Таким образом, очередность вызова методов диктуется реализуемым алгоритмом для работы с сервисом.

Сервис требует авторизации для работы с ним, используются логин и пароль от личного кабинета SLETAT.RU.

Краткое описание возможностей

С помощью методов данного сервиса вы можете:

  • Создать online-заявку на приобретение тура, клиент-турист и менеджер агентства получает Email и СМС оповещения;
  • Получать информацию о ранее созданной заявке, при этом вы получаете возможность отправить клиента-покупателя на страницу выбранного платежного провайдера для оплаты заказа. Текущий платежный провайдер настраивается в личном кабинете SLETAT.RU.

Подключение к сервису

Для начала работы с сервисом вам нужно зарегистрироваться на сайте sletat.ru и обратиться в службу поддержки info@sletat.ru с указанием вашего логина для получения тестовой лицензии. После того, как лицензия будет выдана, можно начинать работать с API этого сервиса. Для работы с сервисом вам нужно использовать WSDL документ, который расположен по адресу:

http://claims.sletat.ru/xmlgate.svc?singlewsdl

Современные среды разработки позволяют автоматически создавать все необходимые классы, используя WSDL-документ, избавляя разработчика от необходимости работать вручную с SOAP конвертами. После того, как WSDL был использован для создания обёртки, можно переходить к описанию логики работы с сервисом. Ниже будут даты более подробные примеры работы с сервисом для клиентов, использующих .NET Framework.

Старый клиент на .NET 1.0 - 2.0

Добавьте в проект ссылку на WSDL документ используя Web Reference. После того, как ссылка была добавлена, ваш проект готов к работе с сервисом. Ниже приведен пример вызова метода для создания online-заявки на приобретение тура по заданным RequestId, OfferId, SourceID:

using System;
using System.Collections.Generic;
using ClaimsServiceClient.ru.sletat.claims;
namespace ClaimsServiceClient {
class Program {
static void Main(string[] args) {
// authentication info
AuthData authTicket = new AuthData(); authTicket.Login = "<your login>";
authTicket.Password = "<type password>";
// xml gate client and authentication ticket
XMLGate client = new XMLGate(); client.AuthInfo = authTicket;
},
// request definition
CreateClaimRequest request = new CreateClaimRequest {
OfferIdSpecified = true, RequestIdSpecified = true, SourceIdSpecified = true,
OfferId = 1725432283, RequestId = 61455627, SourceId = 5,
Comments = "There are some comments", Customer = new Customer
{
Address = "СПБ",
Email = "<........>@gmail.com",
FullName = "Смирнов Андрей Валерьевич", Passport = "1122 5500",
Phone = "+7(921)<...-..-..>"
InitialURL = "http://www.google.com", Tourists = new List<Tourist>
{
new Tourist
{
City = "СПБ",
BirthDate = DateTime.Now, BirthDateSpecified = true, Citizenship = "Россия",
Country = "Россия", DateOfIssue = DateTime.Now,
DateOfIssueSpecified = true,
Email = "<........>@gmail.com", Expires = DateTime.Now, ExpiresSpecified = true, FirstName = "Andrey",
Gender = Gender.Male,
PassportNumber = "11", PassportSeries = "22", Patronymic = "V",
Phone = "+7(921)<...-..-..>", Surname = "Smirnov",
Title = Title.MR
}
}.ToArray() };
// attempt to create online claim
var response = client.CreateClaim(request);
 
// futher we can analise the request from xml gate
if (response.OperationStatus)
{
// continue
} }
} }

Клиент на .NET 3.5 или выше

Добавьте в проект ссылку на WSDL документ используя Service Reference. После добавления ссылки ваш проект готов к работе с сервисом.

Ниже приведен пример вызова метода для создания online-заявки на приобретение тура по заданным RequestId, OfferId, SourceID:

static void Main(string[] args) {
// данные для авторизации на сервисе
AuthData authTicket = new AuthData(); authTicket.Login = "<type your login here>"; authTicket.Password = "<and password>";
// экземпляр клиента для обращения к XMLGate сервису для работы с online-заявками
using (XMLClaimsGateClient client = new XMLClaimsGateClient()) {
CreateClaimRequest request = new CreateClaimRequest {
OfferId = 1,
RequestId = 2,
SourceId = 3,
Comments = "There are some comments", Customer = new Customer
{
Address = "СПБ",
FullName = "Смирнов Андрей Валерьевич",
Passport = "1122 5500",
Email = "<email заказчика, на который будут приходить оповещения>", Phone = "+7(921)...-..-.. <телефон заказчика, на который будут приходить
},
 
InitialURL = "http://www.google.com", Tourists = new List<Tourist>
{
new Tourist {
BirthDate = DateTime.Now,
Citizenship = "Россия",
City = "СПБ",
Country = "Россия", DateOfIssue = DateTime.Now,
Title = Title.MR, FirstName = "Andrey", Patronymic = "V", Surname = "Smirnov",
Gender = Gender.Male, PassportNumber = "11",
PassportSeries = "22",
Email = "<email туриста>",
Phone = "<телефон туриста>" }
}.ToArray() };
var response = client.CreateClaim(authTicket, request); }
}

Не забудьте указан логин и пароль вашей учетной записи на сайте SLETAT.RU. Данные для авторизации передаются первым параметром для всех методов сервиса.

Пример клиента на PHP

<?php
$claimParams = array( 
	'request' => array(
		'WorkflowType' => 'TwoStepsHolding', 
		'Comments'=>'There are some comments', 
		'Customer'=> (object) array ( 
			'Address'=>'С-Пб', 
			'Email'=>'test@corp.sletat.ru', // почта туриста для уведомлений
			'FullName'=>'Смирнов Андрей', 
			'Passport'=>'11 22 333333', 
			'Phone'=>'79119220000' // телефон туриста для уведомлений
		), 
		'InitialURL'=>'http://sletat.ru/',
		'OfferId'=>'376077314', 
		'RequestId'=>'1200330120', 
		'SourceId'=>'163', 
		'Actualize'=>true, 
		'DiscountAmount'=>'', 
		'DiscountPercentage'=>'0',
		'PriceFromCustomer'=>'4',
		'Comments'=>'Test Comment here',
		'Tourists'=> array(
			'Tourist' => array( 
				(object) array( 
				'BirthDate'=>'1995-01-01', 
				'Citizenship'=>'Россия', 
				'City'=>'Ставрополь, ул. Мира', 
				'Country'=>'Ставрополь, ул. Мира', 
				'DateOfIssue'=>'2015-05-23', 
				'Email'=>'kd@corp.sletat.ru', 
				'Expires'=>'2020-12-22',
				'FirstName'=>'Andrey', 
				'PassportNumber'=>'123456', 
				'PassportSeries'=>'555', 
				'Patronymic'=>'V', 
				'Phone'=>'79119220000', 
				'Surname'=>'Smirnov',
				'Title' => 'CHD',
				),
			) 
		) 
	) 
);
 
print_r($claimParams);
$soapClient = new SoapClient('http://claims.sletat.ru/xmlgate.svc?singlewsdl');
$soapClient->__setSoapHeaders(new SoapHeader("urn:SletatRu:DataTypes:AuthData:v1", "AuthInfo", array(
	'Login' => 'sletatlogin',
	'Password'=> 'sletatpassword'
)));
$result = $soapClient->CreateClaim($claimParams);
print_r($result);

Версионность

Сервис может содержать несколько контрактов, каждое изменение, несовместимое с предыдущей публикацией, будет вести к созданию контракта новой версии. Описание контрактов всех поддерживаемых версий включено в WSDL.

WSDL — автоматически формируемый документ, описывающий все контракты веб-сервиса, описывает их методы и используемые типы данных. Каждый контракт веб-сервиса имеет уникальное имя используемое для его идентификации. Эти имена также используются для указания версии, например, в виде даты публикации, или любым иным образом.

Текущая версия сервиса состоит из одного контракта, который использует имя:

urn:SletatRu:XMLClaimsGate:v1

Используется URN (Uniform Resource Name) для обозначения имени контракта и его версии. Все разрабатываемые сервисы имеют префикс SletatRu, после которого указывается название контракта, последним указывается его версия.

Следующие версии контракта Soap11Gate будут иметь другое значение версии в последней части URN, например:

urn:SletatRu:XMLClaimsGate:v2

Чтобы использовать новую версию контракта, клиенту лишь необходимо указать нужную версию в SOAP конверте:

<soap:Envelope>
<soap:Body>
<CreateClaim xmlns=" urn:SletatRu:XMLClaimsGate:v1">
... </CreateClaim>
</soap:Body> </soap:Envelope>


Если вы используете автоматически создаваемую обёртку для сервиса создания online-заявок, то при изменении текущего контракта, или при создании контракта новой версии, вам нужно заново создать обёртку к сервису.

Новые версии контрактов будут создаваться только при наличии обратно несовместимых изменений. Все обратно совместимые изменения (добавление новых методов, добавление новых параметров в методы, добавление новых полей в структуры данных) будут добавляться в текущую версию контракта. Версионность также соблюдается для всех типов данных.

Создание новых версий также может быть сопряжено с иными задачами в ходе развития сервиса, например, группированием методов в контракты новых версий таким образом, чтобы в дальнейшем можно было отказаться от устаревших методов.

Логика работы с сервисом

В сервисе по работе с онлайн-заявками доступны следующие операции:

CreateClaim — используется для создания заявки на приобретение тура. Операция полностью аналогична ручному вводу данных о заказчике тура и списке туристов в форме ввода для регистрации заявки в результатах выдачи поискового модуля на сайте клиента;

После регистрации заявки она становится доступной для просмотра и редактирования в личном кабинете менеджера агентства по адресу:

https://sletat.ru/workspace/agencyorders.aspx

В качестве ответа от данной операции приходит флаг успешности операции, сообщение об ошибке в случае неуспешности попытки, и идентификатор ClaimIdentity, который потом можно использовать для получения данных по созданной заявке;

UpdateClaimToWasSentState — Переводит заказ в состояние «Отправлен на оплату». С указанной даты ссылка на оплату будет действительна в течение 48 часов (значение может быть изменено в настройках вашего аккаунта в разделе «Ограничения по платежам» - https://sletat.ru/workspace/billingsettings.aspx?tab=restrictions).

Эту операцию необходимо использовать первой, если вы хотите, чтобы ссылка на оплату RedirectToPaymentPageURL из запроса GetClaimInfo была действительной.

UpdateClaimToWasViewedState — Переводит заказ в состояние «Просмотрен (заказчиком)». Операцию необходимо использовать как следующий шаг после создания заказа (СreateClaim) и регистрации даты выставленного к оплате счета (UpdateClaimToWasSentState).

GetClaimInfo — возвращает все необходимую информацию по ранее созданной заявке. Вместе с результатами данной операции вы также получаете специальным образом сформированный URL, который можно использовать для последующего редиректа покупателя на страницу оплаты того платежного провайдера, который был ранее выбран и настроен в личном кабинете:

https://sletat.ru/workspace/billingsettings.aspx.

Обратите также внимание на поле PaymentIsAvailable. В случае, если данное поле имеет значение false, попытка пройти на страницу оплаты для совершения платежа закончится неудачей.

Для совершения платежа ранее созданный заказ должен быть сначала переведен в состояние «В оплату» с указанием даты фиксации выставленного к оплате счета, а затем должен быть переведен в состояние «Просмотрен (заказчиком)».

Такой заказ в списке заказов будет выглядеть так:

pic 1

Обратите внимание на срок актуальности выставляемой к оплате ссылки.

Методы

В этом разделе описаны все методы сервиса для работы с online-заявками на приобретение туров. К методам приведены примеры запросов и ответов в SOAP. Все методы требуют авторизации, информация для авторизации (логин и пароль) передаётся в заголовке SOAP — AuthInfo:

<soap:Envelope xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsi="ttp://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
<soap:Header>
<AuthInfo xmlns="urn:SletatRu:DataTypes:AuthData:v1">
<Login>********</Login>
<Password>********</Password>
</soap:Header>
 
<soap:Body> <CreateClaim lns="urn:SletatRu:Contracts:XMLClaimsGate:v1">
</soap:Body> </soap:Envelope>

В примерах SOAP запросов и ответов, что приводятся ниже для каждого метода, элемент soap:Header убран для лучшей читаемости документа.

CreateClaim

Метод используется для регистрации online-заявки, которая становится доступной для последующей ее обработки менеджером агенства в личном кабинете на сайте Слетать.ру.

В запросе можно указать необходимость провести актуализацию тура, что позволит получить актуальную стоимость тура на момент заказа со стороны туроператора.

Сигнатура:

CreateClaimResponse CreateClaim(CreateClaimRequest request)

Параметры:

CreateClaimRequest — параметр данного типа описывает всю структуру online-заявки, и содержит следующие важные поля:

Tourist[] Tourists — список туристов.

Каждая запись представляет собой описание туриста, на которого оформляется тур, и может содержать следующие свойства:

Title— Обращение. Возможные значения:  Unknown, MR, MRS, CHD, INF.

Gender — Пол string

FirstName Имя string

Surname Фамилия string

Patronymic Отчество

DateTime BirthDate Дата рождения

byte Age Возраст, можно не указывать

string Phone Номер телефона

string Email Emai string Country Страна

string City Город проживания

string PassportSeries Серия паспорта

string PassportNumber Номер паспорта

DateTime DateOfIssue Дата выдачи паспорта

string IssuedBy Кем выдан паспорт

DateTime Expires Срок окончания действия паспорта

string Citizenship Гражданство

Customer Customer - Заказчик тура, именно на данного человека и его контактные данные будут отсылаться оповещения СМС и email

string FullName ФИО заказчика

string Phone Телефон заказчика, именно этот телефон будет использоваться для СМС-оповещения и для связи со стороны турагенства

string Email Email заказчика, именно этот адрес будет использоваться для отправки Email-оповещений заказчику обо всех важных операциях над заявкой

string Address Адрес заказчика, одной строкой

string Passport Паспорт заказчика, одной строкой Серия-Номер  

string IssuedBy Паспорт заказчика, поле «Кем выдан, когда» - 128 символов

Следующие поля описывают запрашиваемый тур:

 int SourceId Идентификатор туроператора в системе SLETAT.RU, может быть получен со стороны поискового сервиса 

long OfferId  Идентификатор предложения туроператора в системе SLETAT.RU, может быть получен со стороны поискового сервиса

int RequestId Идентификатор поискового запроса в системе SLETAT.RU, может быть получен со стороны поискового сервиса 

int PriceFromCustomer Пользовательская цена тура. Если параметр передан, при оплате тура его значение будет использоваться вместо цены туроператора, в том числе полученной при актуализации. На цену не будут влиять никакие скидки (в процентных или абсолютных значениях), применённые к туру ранее. Необязательный параметр. Возможные значения: любое целое число больше нуля.

Следующие поля влияют на процесс обработки заказа в целом:

string InitialURL – данный параметр является адресом страницы, на которую будет произведен возврата после завершения процесса оплаты;

WorkflowType WorkflowType – данный параметр определяет тип обработки заказа.

На текущий момент существует две схемы:

  • схема с предварительной обработкой заказа менеджером турагентства в личном кабинете SLETAT.RU,
  • схема с прямой оплатой заказа сразу же на момент оформления заказа на сайте турагентства.

В зависимости от выбранной схемы данный параметр может принимать следующие значения:

  • Вариант с предварительной обработкой менеджером турагенства Preprocessing =0
  • Вариант с прямым переходом к холдированию денежных средств сразу же после заполнения заявки TwoStepsHolding = 1

bool Actualize – Данный признак позволяет указать, стоит проводить актуализацию стоимости тура или нет.

Важно понимать, что сама актуализация может занимать некоторое время и выполняется асинхронно. Текущее состояние актуализации можно увидеть в результате операции GetClaimInfo. После успешного завершения актуализации стоимость тура будет изменена на новое полученное значение.

Обратите внимание на следующий момент: Если вы запросили проведение актуализации и сразу же пытаетесь отправить клиента для последующего редиректа на платежную страницу (не дождавшись завершения актализации стоимости тура), то клиент уйдет на оплату, возможно, неактуальной стоимости тура.

Фактом завершения актуализации будет являться получение свойства CurrentState в структуре Actualization в ответе от запроса GetClaim, равного состояниям: Completed, Failed, IncorrectCurrency.

В случае проведения актуализации окончательная стоимость Price тура будет равна: Price = Стоимость тура от туроператора – Скидка, указанная в запросе

В случае создания заявки без актуализации окончательная стоимость тура Price будет равна: Price = Стоимость тура из результатов поиска + Наценка турагенства на заданное направление (туроператор, страна) – Скидка, указанная в запросе.

int DiscountAmount – Сумма скидки в рублях, применямая к стоимости тура. Скидка также применяется после актуализации стоимости тура у туроператора.

int DiscountPercentage – Сумма скидки в процентах, применямая к стоимости тура. Указывается в виде целочисленного значения от 0 до 100. Скидка также применяется после актуализации стоимости тура у туроператора. В случае, если указываются оба значения – DiscountAmount и DiscountPercentage – предпочтение отдается значению DiscountAmount (т.е. значение в процентах не используется).

Ответ:

CreateClaimResponse содержит флаг успешности операции CreateClaim, а также важный параметр ClaimIdentity, который можно использовать для последующих операций GetClaimInfo запроса данных по созданной заявке, обновления дат просмотра заказа и фиксации начала действия выставленного к оплате счета (актуальности ссылки для перехода к платежной странице) UpdateClaimToWasViewedState и UpdateClaimToWasSentState.

bool OperationStatus Признак успешности операции

string ServiceMessage Описание результата операции

string OrderIdentity Сквозной номер заказа в рамках работы турагенства

string ClaimIdentity Идентификатор заявки в случае успешной операции

SOAP запрос/пример:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateClaim xmlns="urn:SletatRu:XMLClaimsGate:v1">
<request>
<Comments xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">There are some comments</Comments> <Customer xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">

<Address>СПБ</Address> <Email>guid.empty@gmail.com</Email> <FullName>Смирнов Андрей Валерьевич</FullName> <Passport>1122 5500</Passport> <Phone>+7(921)354-33-47</Phone>
</Customer>
<InitialURL xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">http://www.google.com</InitialURL> <OfferId xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">1725432283</OfferId>
<RequestId xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">61455627</RequestId>
<SourceId xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">5</SourceId>
<Actualize>true</Actualize> <DiscountAmount>500</DiscountAmount> <DiscountPercentage>0</DiscountPercentage>
<Tourists xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:XML:v1">
<Tourist>
<BirthDate>2012-12-20</BirthDate> <Citizenship>Россия</Citizenship>
<City>СПБ</City>
<Country>Россия</Country> <DateOfIssue>2012-12-20</DateOfIssue> <Email>guid.empty@gmail.com</Email> <Expires>2012-12-20</Expires> <FirstName>Andrey</FirstName> <PassportNumber>11</PassportNumber> <PassportSeries>22</PassportSeries>
<Patronymic>V</Patronymic> <Phone>+7(921)354-33-47</Phone> <Surname>Smirnov</Surname>
</Tourist>
</Tourists>
</request>
</CreateClaim>
</soap:Body>
</soap:Envelope>

SOAP ответ/пример:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateClaimResponse xmlns="urn:SletatRu:XMLClaimsGate:v1">
<CreateClaimResult xmlns:a="urn:SletatRu:Contracts:ClaimsGate:DataTypes:XML:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<OperationStatus xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">true</OperationStatus> <OrderIdentity xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">53</OrderIdentity> <a:ClaimIdentity>20ad89d22d31c9a5cc5a50bc9f367407</a:ClaimIdentity>
<a:ServiceMessage i:nil="true"></a:ServiceMessage>
</CreateClaimResult>
</CreateClaimResponse>
</s:Body>
</s:Envelope>

CreateClaim – пример запроса на PHP

Ниже приводится пример запроса на PHP. Обратите внимание на указания XML namespace в сигнатуре формирования soap-заголовка запроса.

пхп

UpdateClaimToWasSentState

Метод используется для перевода заказа в состояние — "Отправлен на оплату". С указанной даты ссылка на оплату будет действительна в течение 48 часов (значение может быть изменено в настройках вашего аккаунта в разделе «Ограничения по платежам».

Данную операцию необходимо использовать первой, если вы хотите, чтобы ссылка на оплату RedirectToPaymentPageURL из запроса GetClaimInfo была действительной.

Сигнатура:

BaseOperationResponse UpdateClaimToWasSentState(BaseUpdateClaimToWasSentStateRequest request)

Параметры:

BaseUpdateClaimToWasSentStateRequest – параметр данного типа содержит следующие поля:

stringClaimIdentity – Идентификаторзаявкивслучаеуспешнойпредыдущейоперации

CreateClaim

DateTime WasSentDate – Дата фиксации выставленного к оплате счета. Именно от этой даты будет анализироваться актуальность ссылки для перехода к платедной странице процессингового центра/банка для совершения платежа.

Ответ:

В ответ от операции UpdateClaimToWasSentState вы получаете объект

BaseOperationResponse, который содержит список следующих свойств:

bool OperationStatus Флаг успешности операции

string ServiceMessage — Ответ-сообщение от сервиса

SOAP запрос/пример:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<UpdateClaimToWasSentState xmlns="urn:SletatRu:XMLClaimsGate:v1">
<request xmlns:a="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ClaimIdentity>3f47cd1883de3722ddf4d42c41fc4be6</a:ClaimIdentity>
    <a:WasSentDate>2013-04-30T00:42:12.7462574+04:00</a:WasSentDate>
  </request>
</UpdateClaimToWasSentState>
</s:Body>
</s:Envelope>

SOAP ответ/пример:

<a:ServiceMessage>HasBeenSentDate property has been updated successfully</a:ServiceMessage> </UpdateClaimToWasSentStateResult>
    </UpdateClaimToWasSentStateResponse>
  </s:Body><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<UpdateClaimToWasSentStateResponse xmlns="urn:SletatRu:XMLClaimsGate:v1">
<UpdateClaimToWasSentStateResult xmlns:a="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:OperationStatus>true</a:OperationStatus>
</s:Envelope>

UpdateClaimToWasViewedState

Переводит заказ в состояние - "Просмотрен (заказчиком)". Данную операцию необходимо использовать как следующий шаг после создания заказа (СreateClaim) и регистрации даты выставленного к оплате счета (UpdateClaimToWasSentState).

Сигнатура:

BaseOperationResponse UpdateClaimToWasViewedState(BaseUpdateClaimToWasViewedStateRequest request)

Параметры:

BaseUpdateClaimToWasViewedStateRequest – параметр данного типа содержит следующие поля:

string ClaimIdentity – Идентификатор заявки в случае успешной предыдущей операции CreateClaim

DateTime WasViewedDate – Дата, которая определяет момент ознакомления заказчика с деталями тура.

Ответ:

В ответ от операции UpdateClaimToWasViewedState вы получаете объект BaseOperationResponse, который содержит список следующих свойств:

bool OperationStatus Флаг успешности операции string ServiceMessage Ответ-сообщение от сервиса

SOAP запрос/пример:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<UpdateClaimToWasViewedState xmlns="urn:SletatRu:XMLClaimsGate:v1">
<request xmlns:a="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:ClaimIdentity>3f47cd1883de3722ddf4d42c41fc4be6</a:ClaimIdentity>
        <a:WasViewedDate>2013-04-30T01:42:15.4604126+04:00</a:WasViewedDate>
</request>
    </UpdateClaimToWasViewedState>
  </s:Body>
</s:Envelope>

SOAP ответ/пример:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<UpdateClaimToWasViewedStateResponse xmlns="urn:SletatRu:XMLClaimsGate:v1">
<UpdateClaimToWasViewedStateResult xmlns:a="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:OperationStatus>true</a:OperationStatus>
<a:ServiceMessage>HasBeenViewedDate property has been updated</a:ServiceMessage> </UpdateClaimToWasViewedStateResult>
  </UpdateClaimToWasViewedStateResponse>
</s:Body>
</s:Envelope>

GetClaimInfo

Метод используется для получения информации о ранее созданной заявке на приобретение тура, при этом приходит возврат актуальной информации о данной заявке после обработки ее менеджером агенства в личном кабинете на сайте SLETAT.RU. В случае указания признака актуализации в операции CreateClaim в ответе будет присутствовать информация о текущем состоянии актуализации стоимости тура (см. ниже описание).

Сигнатура:

GetClaimResponse GetClaimInfo(GetClaimRequest request)

Параметры:

GetClaimRequest – параметр данного типа содержит единственный параметр:

tring ClaimIdentity – Идентификатор заявки в случае успешной предыдущей операции CreateClaim

Ответ:

В ответ от операции GetClaimInfo вы получаете объект GetClaimResponse, который содержит список следующих свойств:

string Number Сквозной номер заказа у агенства

bool OperationStatus Флаг успешности операции 

string ServiceMessage Ответ сообщение от сервиса 

bool PaymentIsAvailable Признак доступности операции оплаты по данной заявке

string RedirectToPaymentURL Страница перехода на платежную систему

Tour Информация о заказе

TourDefinition Определение тура

TouristsDefinition Определение списка туристов

ResidencesDefinition Проживание

AviaFlightsDefinition Определяет блок авиа- перелетов в определении тура

TransfersDefinition Определяет блок трасферов в определении тура

OptionsDefinition Определяет блок допуслуг в определении

VISAsDefinition Определяет блок для оформления списка необходимых виз

InsurancesDefinition Определяет блок для оформления всех необходимых страховок в рамках определения тура

Unknown = 0 Данная заявка все еще не обработана менеджером агенства

AwaitingConfirmation = 1 Заказ находится в ожидании подтверждения и начала оплаты;

PaymentPending = 2

AwaitingHold = 3

AwaitingHoldVerification = 4

На данном этапе счет просто отправлен покупателю, но это не означает, что он просмотрен. Клиент увидел свой предзаказ, находится на странице просмотра заказа, возможно начало оплаты; По сути, счет получен покупателем;

Клиент начал оплату, но результатов с платежной системы еще нет Операция завершена, ждем результатов проверки ответа от платежной системы

HoldFailed = 5 Проверка ответа от платежной системы дала отрицательный результат Holded = 6 Операция по оплате завершена BookingRequest = 7 Тур находится на этапе бронирования у туроператора ConfirmedByTourOperator Тур подтвержден =8 Canceled = 9 AwaitingAccept = 10 Accepted = 11 AcceptFailed = 12 AwaitingRefund = 13 RefundFailed = 14 Refunded = 15 Completed = 16 Actualization Заказ отменен, если денежные средства были сняты, ждем операции Refund Заказ находится в ожидании снятия денег со счета клиента Деньги со счета клиента сняты Операция по снятию денег со счета клиента закончилась неудачей Заказ был прекращен по какой- то причине, находимся в ожидании Refund Операция по возрату денежных средств клиенту закончилась неудачей Денежные средства возвращены клиенту Заказ полностью выполнен; Документы выданы, на данном этапе работа с заказом закончена, никаких операций над ним больше не производится.

Actualization Текущее состояние актуализации

CurrentState Текущее состояние процесса актуализации, может принимать следущие значения: Unknown = 0 NotRequired = 1 Required = 2 InProgress = 3 Completed = 4 Failed = 5 IncorrectCurrency = 6 int Price Currency Состояние не определено Актуализация не требуется Актуализация требуется Выполняется запрос туроператору, требуется завершение актуализации Актуализация успешно завершена Актуализация не выполнена по какой-то причине, дополнительную информацию можно получить в сообщении ServiceMessage Актуализация завершена успешно, но стоимость получена в валюте, отличной от RUB; Данный статус говорит о том, что стоимость тура осталась без изменений (первоначальное значение из результатов поиска) В случае успешного выполнения данное поле будет содержать стоимость тура, полученную от туроператора В случае успешного выполнения данное поле будет тип валюты, в которой получена стоимость тура от туроператора. В процессе актуализации делается попытка получить стоимость тура в RUB, но не всегда возможно получить стоимость в этой валюте. В случае, если получили стоимость в валюте, отличной от RUB, текущее состояние актуализации будет IncorrectCurrency. Данное поле может содержать следующие значения: RUB, USD, EUR

DepartureFlight Дополнительно в процессе актуализации мы можем получить информацию об авиаперелете вылета ReturnFlight Дополнительно в процессе актуализации мы можем получить информацию об авиаперелете вылета

Перелеты могут содержать следующие поля:

string Name Название рейса в произвольном виде string Flight Номер рейса  string DepartureAirport Название аэропорта вылета string DestinationAirport Название аэропорта прилета string Date Дата вылета в формате YYYY-MM-DD string StartTime Время вылета в формате HH:ss string EndTime Время прилета в формате HH:ss

SOAP запрос/пример:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetClaimInfo xmlns="urn:SletatRu:XMLClaimsGate:v1">
<request>
<ClaimIdentity xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">20ad89d22d31c9a5cc5a50bc9f367407</ClaimI dentity>
</request>
</GetClaimInfo>
</soap:Body>
</soap:Envelope>

SOAP ответ/пример:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetClaimInfoResponse xmlns="urn:SletatRu:XMLClaimsGate:v1">
<GetClaimInfoResult xmlns:d4p1="urn:SletatRu:Contracts:ClaimsGate:DataTypes:XML:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Number xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">53</Number>
<OperationStatus xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">true</OperationStatus> <PaymentIsAvailable xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">true</PaymentIsAvailable> <RedirectToPaymentURL xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">http://globaltps.ru/beginholdinghandler .ashx?claimid=20 ad89d22d31c9a5cc5a50bc9f367407</RedirectToPaymentURL>
<ServiceMessage i:nil="true" xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1"></ServiceMessage> <Status xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">Unknown</Status><Tour xmlns="urn:SletatRu:Contracts:ClaimsGate:DataTypes:v1">
<Amount>6384.0000</Amount>
<AviaFlightsDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:AviaFlights></d6p1:AviaFlights> <d6p1:BusinessClassPaymentCurrency>RUB</d6p1:BusinessClassPaymentCurrency> <d6p1:BusinessClassSummaryPayment>0</d6p1:BusinessClassSummaryPayment> <d6p1:Currency>RUB</d6p1:Currency> <d6p1:SummaryPrice>0</d6p1:SummaryPrice> <d6p1:TransportFeeCurrency>RUB</d6p1:TransportFeeCurrency> <d6p1:TransportSummaryFee>0</d6p1:TransportSummaryFee>
</AviaFlightsDefinition>
<Comments>There are some comments</Comments>
<Currency>RUB</Currency>
<InsurancesDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Currency>RUB</d6p1:Currency> <d6p1:Insurances></d6p1:Insurances> <d6p1:SummaryPrice>0</d6p1:SummaryPrice>
</InsurancesDefinition>
<OptionsDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Currency>RUB</d6p1:Currency> <d6p1:Options></d6p1:Options> <d6p1:SummaryPrice>0</d6p1:SummaryPrice>
</OptionsDefinition>
<ResidencesDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Residences>
<d6p1:Residence>
<d6p1:CheckIn>2012-12-23T00:00:00</d6p1:CheckIn> <d6p1:CheckOut>2012-12-30T00:00:00</d6p1:CheckOut>
<d6p1:Comments i:nil="true"></d6p1:Comments> <d6p1:CountryName>Египет</d6p1:CountryName>
<d6p1:Hotel>AL DIWAN (L)</d6p1:Hotel> <d6p1:HotelStars>3*</d6p1:HotelStars> <d6p1:HtPlaceName>SGL</d6p1:HtPlaceName>
<d6p1:Identity xmlns:d9p1="http://www.w3.org/2001/XMLSchema" i:type="d9p1:int">709</d6p1:Identity> <d6p1:MealName>HB</d6p1:MealName> <d6p1:Resort>Sharks Bay</d6p1:Resort>
<d6p1:RoomName>STANDARD ROOM</d6p1:RoomName>
</d6p1:Residence>
</d6p1:Residences>
</ResidencesDefinition>
<TourDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:CheckIn>2012-12-23T00:00:00</d6p1:CheckIn> <d6p1:CheckOut>2012-12-30T00:00:00</d6p1:CheckOut> <d6p1:CountryID>40</d6p1:CountryID> <d6p1:CountryName>Египет</d6p1:CountryName> <d6p1:Currency>RUB</d6p1:Currency> <d6p1:DepartureCity>СПб</d6p1:DepartureCity>
<d6p1:Identity xmlns:d7p1="http://www.w3.org/2001/XMLSchema" i:type="d7p1:int">0</d6p1:Identity>
<d6p1:Nights>7</d6p1:Nights> <d6p1:Price>6384</d6p1:Price>
<d6p1:Resort>Sharks Bay</d6p1:Resort> <d6p1:SourceID>5</d6p1:SourceID> <d6p1:SourceName>Верса</d6p1:SourceName> <d6p1:TourName>Шарм 2012-2013</d6p1:TourName>
</TourDefinition>
<TouristsDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Tourists>
<d6p1:Tourist>
<d6p1:Age>0</d6p1:Age> <d6p1:BirthDate>2012-12-20T09:49:38.313</d6p1:BirthDate> <d6p1:Citizenship>Россия</d6p1:Citizenship> <d6p1:City>СПБ</d6p1:City> <d6p1:Country>Россия</d6p1:Country> <d6p1:DateOfIssue>2012-12-20T09:49:38.317</d6p1:DateOfIssue> <d6p1:Email>guid.empty@gmail.com</d6p1:Email> <d6p1:Expires>2012-12-20T09:49:38.317</d6p1:Expires> <d6p1:FirstName>Andrey</d6p1:FirstName> <d6p1:Gender>Unknown</d6p1:Gender> <d6p1:ID>1095</d6p1:ID> <d6p1:IsPrimaryContact>false</d6p1:IsPrimaryContact> <d6p1:PassportNumber>11</d6p1:PassportNumber> <d6p1:PassportSeries>22</d6p1:PassportSeries>
<d6p1:Patronymic i:nil="true"></d6p1:Patronymic> <d6p1:Phone>+7(921)354-33-47</d6p1:Phone> <d6p1:Surname>Smirnov</d6p1:Surname> <d6p1:Title>Unknown</d6p1:Title> <d6p1:TourClaimID>786</d6p1:TourClaimID>
</d6p1:Tourist>
</d6p1:Tourists>
</TouristsDefinition>
<TransfersDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Currency>RUB</d6p1:Currency> <d6p1:SummaryPrice>0</d6p1:SummaryPrice> <d6p1:Transfers></d6p1:Transfers>
</TransfersDefinition>
<VISAsDefinition xmlns:d6p1="urn:SletatRu:Contracts:BillingServer:DataTypes:v1">
<d6p1:Currency>RUB</d6p1:Currency> <d6p1:SummaryPrice>0</d6p1:SummaryPrice> <d6p1:VISAs></d6p1:VISAs>
</VISAsDefinition>
</Tour>
 
 
-----
----
-----

GetClaimInfo – пример запроса на PHP

Ниже приводится пример запроса на PHP. Обратите внимание на указания XML namespace в сигнатуре формирования soap-заголовка запроса.

<?php

$getC
laimInfoParam = array
(



);
'
request' => array(
)
'ClaimIdentity' =>
'5aabf3ea346baea36839409c14140c88'

$soapClient = new SoapClient(
'http://claims.sletat.ru/xmlgate.svc?wsdl')
;

$soapClient->__setSoapHeaders
(
new SoapHeader("urn:SletatRu:DataTypes:AuthData:v1",
"AuthInfo"
,
array(


)));
"Login" => '<Логин от вашего аккаунта на SLETAT
.
RU
>
'
,
"Password"=> 'Пароль от вашего аккаунта на SLETAT
.
RU
'
,
$result = $soapClient-
>
getClaimInfo
(
$getClaimInfoParam
)
;