Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
|
public:book [2016/11/09 20:59] onieto created |
public:book [2017/01/20 13:17] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ==== Solicitud de reservas ==== | ==== Solicitud de reservas ==== | ||
| + | |||
| + | Solicitud de reserva de rutas. | ||
| + | |||
| + | Verbo HTTP: POST | ||
| + | Recurso: /tour | ||
| + | Método: /book | ||
| + | --------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | Parámetros obligatorios: | ||
| + | * tourID: Identificador del tour | ||
| + | * departure: Fecha de salida del tour (yyyy-MM-dd) | ||
| + | * pax: Número de personas que solicitan la reserva | ||
| + | * bookingInfo: Información de los viajeros y habitaciones de la reserva | ||
| + | Parámetros opcionales: | ||
| + | * completeTour: Controla si la consulta es sobre el tour completo o | ||
| + | parcial (días en concreto). Por defecto: true | ||
| + | * entryDate: Fecha de entrada al tour (para rutas parciales) -> yyyy-MM-dd | ||
| + | * exitDate: Fecha de salida del tour (para rutas parciales) -> yyyy-MM-dd | ||
| + | * output: Formato de salida de la consulta (XML o JSON) | ||
| + | --------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | === Esquema de la petición === | ||
| + | |||
| + | El elemento "bookingInfo" tiene la siguiente estructura: | ||
| + | |||
| + | * BookingInfo -> Root | ||
| + | * Paxes -> Contenedor de información sobre las personas | ||
| + | * Pax -> Elemento con la información sobre una persona | ||
| + | * Id -> Identificador de la persona en la información de la reserva | ||
| + | * Name -> Nombre (y apellidos) | ||
| + | * Passport -> Pasaporte | ||
| + | * Email -> Email | ||
| + | * Address -> Dirección | ||
| + | * Telephone -> Teléfono | ||
| + | * Child -> Controla si la persona es un niño (menor de 8 años) | ||
| + | * Age -> Si la persona es un niño es obligatorio especificar su edad | ||
| + | * DepartureFlight -> Código del vuelo de ida | ||
| + | * ReturnFlight -> Código del vuelo de vuelta | ||
| + | * Rooms -> Contenedor de información sobre las habitaciones | ||
| + | * Room -> Elemento con la información sobre la habitación | ||
| + | * Type -> [[public:enums|Enumerador del tipo de habitación]] | ||
| + | * Price -> Precio de la habitación (obligatorio superior al neto de Eurorutas) | ||
| + | * PaxIds -> Contenedor de la distribución de personas asociados a la habitación | ||
| + | * PaxId -> Identificador de la persona asociada a la habitación | ||
| + | |||
| + | Nota: La información sobre las personas, excepto el identificador, nombre y apellidos, podrá ser completada con posterioridad al momento de la reserva. | ||
| + | |||
| + | A continuación tenemos ejemplos del elemento "BookingInfo": | ||
| + | |||
| + | <code xml Example.xml> | ||
| + | <BookingInfo> | ||
| + | <Paxes> | ||
| + | <Pax Id="0" Name="string" Passport="string" Email="string" Address="string" Telephone="string" Child="false" Age="0" DepartureFlight="string" ReturnFlight="string" /> | ||
| + | <Pax Id="1" Name="string" Passport="string" Email="string" Address="string" Telephone="string" Child="false" Age="0" DepartureFlight="string" ReturnFlight="string" /> | ||
| + | </Paxes> | ||
| + | <Rooms> | ||
| + | <Room Type="Double" Price="150.10"> | ||
| + | <PaxIds> | ||
| + | <PaxId>0</PaxId> | ||
| + | <PaxId>1</PaxId> | ||
| + | </PaxIds> | ||
| + | </Room> | ||
| + | </Rooms> | ||
| + | </BookingInfo> | ||
| + | </code> | ||
| + | |||
| + | <code javascript Example.json> | ||
| + | { | ||
| + | "Paxes": [ | ||
| + | { | ||
| + | "Id": 0, | ||
| + | "Name": "string", | ||
| + | "Passport": "string", | ||
| + | "Email": "string", | ||
| + | "Address": "string", | ||
| + | "Telephone": "string", | ||
| + | "Child": false, | ||
| + | "Age": 0, | ||
| + | "DepartureFlight": "string", | ||
| + | "ReturnFlight": "string" | ||
| + | }, | ||
| + | { | ||
| + | "Id": 1, | ||
| + | "Name": "string", | ||
| + | "Passport": "string", | ||
| + | "Email": "string", | ||
| + | "Address": "string", | ||
| + | "Telephone": "string", | ||
| + | "Child": false, | ||
| + | "Age": 0, | ||
| + | "DepartureFlight": "string", | ||
| + | "ReturnFlight": "string" | ||
| + | } | ||
| + | ], | ||
| + | "Rooms": [ | ||
| + | { | ||
| + | "Type": 1, | ||
| + | "PaxIds": [ | ||
| + | 0,1 | ||
| + | ], | ||
| + | "Price": 150 | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | --------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | === Esquema de la respuesta === | ||
| + | * Booking -> Root | ||
| + | * Confirmed -> Indica si la reserva ha sido confirmada correctamente | ||
| + | * Modified -> Indica si la reserva ha sido modificada correctamente (sólo en transacciones de modificación) | ||
| + | * BookingNumber -> Número de la reserva | ||
| + | * Price -> Precio total de la reserva | ||
| + | * Pax -> Número total de personas en la reserva | ||
| + | * TourID -> Identificador del tour | ||
| + | * CompleteTour -> Controla si la reserva es sobre el tour completo o parcial (días en concreto). | ||
| + | * EntryDate -> Fecha de entrada al tour (para rutas parciales) | ||
| + | * ExitDate -> Fecha de salida del tour (para rutas parciales) | ||
| + | * BookingDate -> Fecha de la reserva | ||
| + | * StartDate -> Fecha de salida del tour | ||
| + | * Error -> Descripción del error | ||
| + | * ErrorCode -> [[public:enums|Enumerador del tipo de error]] | ||
| + | * BookingInfo -> Elemento con la información de personas y habitaciones (descrito en la petición) | ||
| + | |||
| + | --------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | === Respuestas de ejemplo === | ||
| + | <code xml Example.xml> | ||
| + | <Booking Confirmed="true" Modified="false" BookingNumber="5" Price="150.10" Pax="2" TourID="1" CompleteTour="true" EntryDate="0001-01-01T00:00:00" ExitDate="0001-01-01T00:00:00" BookingDate="2016-11-10T13:31:44.0233894+01:00" StartDate="2017-01-13T00:00:00"> | ||
| + | <Error /> | ||
| + | <ErrorCode>No_Error</ErrorCode> | ||
| + | <BookingInfo> | ||
| + | <Paxes> | ||
| + | <Pax Id="1008" Name="string" Passport="string" Email="string" Address="string" Telephone="string" Child="false" Age="0" DepartureFlight="string" ReturnFlight="string" /> | ||
| + | <Pax Id="1009" Name="string" Passport="string" Email="string" Address="string" Telephone="string" Child="false" Age="0" DepartureFlight="string" ReturnFlight="string" /> | ||
| + | </Paxes> | ||
| + | <Rooms> | ||
| + | <Room Type="Double" Price="150.10"> | ||
| + | <PaxIds> | ||
| + | <PaxId>1008</PaxId> | ||
| + | <PaxId>1009</PaxId> | ||
| + | </PaxIds> | ||
| + | </Room> | ||
| + | </Rooms> | ||
| + | </BookingInfo> | ||
| + | </Booking> | ||
| + | </code> | ||
| + | --------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| + | <code javascript Example.json> | ||
| + | { | ||
| + | "Confirmed": true, | ||
| + | "Modified": false, | ||
| + | "BookingNumber": 4, | ||
| + | "Error": "", | ||
| + | "ErrorCode": 0, | ||
| + | "BookingInfo": { | ||
| + | "Paxes": [ | ||
| + | { | ||
| + | "Id": 1006, | ||
| + | "Name": "string", | ||
| + | "Passport": "string", | ||
| + | "Email": "string", | ||
| + | "Address": "string", | ||
| + | "Telephone": "string", | ||
| + | "Child": false, | ||
| + | "Age": 0, | ||
| + | "DepartureFlight": "string", | ||
| + | "ReturnFlight": "string" | ||
| + | }, | ||
| + | { | ||
| + | "Id": 1007, | ||
| + | "Name": "string", | ||
| + | "Passport": "string", | ||
| + | "Email": "string", | ||
| + | "Address": "string", | ||
| + | "Telephone": "string", | ||
| + | "Child": false, | ||
| + | "Age": 0, | ||
| + | "DepartureFlight": "string", | ||
| + | "ReturnFlight": "string" | ||
| + | } | ||
| + | ], | ||
| + | "Rooms": [ | ||
| + | { | ||
| + | "Type": 1, | ||
| + | "PaxIds": [ | ||
| + | 1006, | ||
| + | 1007 | ||
| + | ], | ||
| + | "Price": 150 | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | "Price": 150, | ||
| + | "Pax": 2, | ||
| + | "TourID": 1, | ||
| + | "CompleteTour": true, | ||
| + | "EntryDate": "0001-01-01T00:00:00", | ||
| + | "ExitDate": "0001-01-01T00:00:00", | ||
| + | "BookingDate": "2016-11-10T13:30:15.2650353+01:00", | ||
| + | "StartDate": "2017-01-13T00:00:00" | ||
| + | } | ||
| + | </code> | ||