Flujo NetCore API AirMetaSearch

Objetivo

El presente documento tiene como finalidad presentar los servicios que se deben ejecutar para realizar un flujo de aereos desde un metabuscador.

Colección Postman

Se pueden descargar los archivos del siguiente documento adjunto:

Todos los servicios ejecutados, deben incluir el siguiente header:

Nombre del Header: x-net-metasearch

Valor a enviar: {userservice}-{SalesChanelCode}

Ejemplo: x-net-metasearch=demo-metaprueba

Se deben enviar las IP’s desde las cuales recibiremos los llamados a nuestras APIs, pues se deben incluir en una whitelist.

Si el llamado no cumple con el header o se hace desde una IP diferente a las autorizadas, el request no se va a procesar.

1. GuestSession [GET]

Este servicio retorna un token de sesión necesario para ejecutar los siguientes servicios. Se debe realizar la autenticación sobre el ambiente que se desee utilizar.

El token de sesión tiene una validez de 24 horas, por lo que debe utilizarse un único token para ejecutar todos los servicios necesarios dentro de ese período. Pasado ese tiempo, será necesario generar un nuevo token.

CURL Ejemplo:

curl --location 'https://certificacion.netactica.com/netcoreapi/Session/GetGuestSession?userservice=netactica' \ --header 'x-net-metasearch: demo-metaprueba'

Donde la variable {userservice} sera informada durante la implementación.

Ejemplo de Respuesta:

image-20241107-010139.png

2. Air MetaSearch [POST]

Por medio de este servicio se lanza la búsqueda, con los destinos, fechas, cantidad de pasajeros que se requieran, este flujo permite que para la búsqueda en especifico que se esta realizando, se muestren cada una de las opciones de aéreo con un deeplink (Es un parametro que contiene una URL que redirecciona a un producto seleccionado).

Consideraciones Generales:

  • El parametro "IsBusSearch" debe estar en FALSE.

  • El parámetro "MaxResults" se utiliza para limitar la cantidad de resultados que se quieren visualizar, aunque la cantidad de resultados total pueda ser superior; es decir, si por ejemplo se encuentran disponibles 1000 vuelos, pero en el parámetro "MaxResults" se digita 100, entonces el sistema solo mostrará los 100 primeros resultados.

  • En el Request del servicio, se debe agregar el código del canal de venta, por medio del campo “SalesChanelCode” dentro de la sección de RequestSettings, este codigo de canal de venta sera suministrado en el proceso de implementación.

  • En el request del servicio, se podra enviar un codigo de sucursal, en caso de que la agencia requiera que las ventas se generen a una sucursal en particular, este parametro debe ser enviado en la sección de RequestSettings, bajo el campo “BranchCode”.

  • El parametro “CabinCode” que se encuentra presente en el array de la sección “trips”, permite segmentar la busqueda para una cabina en especifico, este parametro permite que se envien los siguientes valores de cabina:

    • Business

    • First

    • Economy

    • Premium Economy

  • En la respuesta del servicio AirMetaSearch, se puede interpretar la cabina que tiene cada una de las opciones de vuelo, esto se puede tomar del parametro “CabinType”, que puede retornar los siguientes valores:

    • 0 = Business

    • 1 = First

    • 2 = Economy

    • 3 = Premium Economy

Curl de Ejemplo:

curl --location 'https://certificacion.netactica.com/netcoreapi/Air/Metasearch/' \ --header 'x-net-metasearch: demo-metaprueba' \ --data '{   "Trips": [    {       "DeparturePoint": "MEX",       "ArrivalPoint": "CUN",       "DepartureDate": "2025-01-10",       "CabinCode": "Economy"     },     {       "DeparturePoint": "CUN",       "ArrivalPoint": "MEX",       "DepartureDate": "2025-01-13",       "CabinCode": "Economy"     }       ],   "IsBusSearch": false,   "Adults": 1,   "Children": 0,   "Infants": 0,   "CurrencyCode": "COP",   "SessionToken": "{{SessionToken}}",   "RequestSettings":{     "SalesChanelCode": "metaprueba",     "BranchCode": "01"   },   "MaxResults": 200 }'

Donde la variable {SessionToken} debe ser reemplazada por el token de sesión, obtenido en el paso 1.

Ejemplo de Respuesta:

image-20241107-011148.png

3. AirResults (Opcional) [POST]

Por medio de este servicio se pueden ordenar los resultados, paginar e incluso aplicar filtros, tales como; devolver opciones de aerolíneas en concreto, tipos de trayecto directo o con escala, con equipaje, por duración del vuelo, entre otros.

Consideraciones generales

  • Por medio de los parámetros "ResultCountLowerBound" y "ResultCountUpperBound" se pueden pedir los resultados en determinadas cantidades para hacer en el portal web una paginación, ejemplo

    • Primer llamado del servicio, con los siguientes parametros:

      • "ResultCountLowerBound": 0,

      • "ResultCountUpperBound": 10,

      • Resultado: La respuesta incluira los 10 primeros resultados unicamente.

    • Segundo llamado del servicio, con los siguientes parametros:

      • "ResultCountLowerBound": 11,

      • "ResultCountUpperBound": 21,

      • Resultado: La respuesta incluira 10 resultados entre el 11 y 21.

    • En este caso por ejemplo el portal web, podra presentar 10 resultados en la pagina 1 y los siguientes 10 resultados en la pagina 2.

Curl de Ejemplo:

curl --location 'https://certificacion.netactica.com/netcoreapi/AirResultsV3' \ --header 'x-net-metasearch: demo-metaprueba' \ --data '{ "SearchId": "{SearchID}", "OrderDesc": true, "OrderCriteria": "RECOMENDATION", "ResultCountLowerBound": 0, "ResultCountUpperBound": 2100000, "SessionToken": "{SessionToken}" } '

Donde la variable {SessionToken} debe ser reemplazada por el token de sesión, obtenido en el paso 1 y la variable {SearchID} representa el id unico de la busqueda realizada, este parametro se obtiene en el paso 2, en la respuesta del servicio AirMetaSearch.

Ejemplo de Respuesta:

 

4. Redirección al Deeplink

La redirección del cliente al deeplink generado en la respuesta del servicio AirMetaSearch, para la opción seleccionada por el cliente, permitira que se redirija al mismo al flujo de venta de la agencia.

 

Diagrama de flujo

 

 

Netactica.com