Implementación y configuración
Ofrecer valor a los viajeros más allá de los puntos o las millas
Con la plantilla sin identificación de marca, tus viajeros pueden obtener la moneda de fidelidad que defina tu programa y canjear sus recompensas en compras de viajes. En este documento se ofrece información general sobre las operaciones de fidelidad disponibles y se explica el proceso para implementar los servicios en los entornos de prueba y producción.
Proporcionarás servicios RESTFul estándar con cargas JSON. Recomendamos utilizar tokens de acceso y tokens web JSON para cada solicitud de API. Hay pasos de seguridad adicionales al llamar a las API, y se cifrará cualquier elemento de datos confidenciales en las cargas de solicitud y respuesta.
Cuando configures tu sitio web a partir de la plantilla, puedes elegir que tus clientes puedan canjear la moneda de fidelidad que hayan obtenido en las líneas de negocio que hayas seleccionado.
Como alternativa, pueden ponerse en contacto con un agente de alguna de las marcas de Expedia para utilizar esos puntos. Nuestros agentes internos utilizarán la API de información de la cuenta para verificar la información del viajero. Una vez verificado, utilizarán la API del banco de puntos para obtener el saldo de la cuenta del viajero y ayudarle con la reserva.
Tu gestor de lanzamiento de Expedia te ayudará a obtener todos los detalles necesarios, incluida la configuración de SSO, como: el nombre de tu marca o programa, los niveles o segmentos de miembros dentro del programa, el nombre de tu moneda de fidelidad y el ratio de canje (por ejemplo, 1 EUR gastado = 100 puntos).
También necesitaremos que nos proporciones lo siguiente:
- API de token de acceso
- ID de cliente y secreto
- Puntos de conexión de canje de fidelidad
- El acuerdo de nivel de servicio (SLA) que has comunicado a tus clientes
Para la configuración que deba realizar tu empresa, te proporcionaremos:
- Una especificación de OpenAPI
- Un punto de conexión de clave web JSON (JWK) si utilizas el parámetro Authorization2
Hacer llamadas a la API
Expedia utiliza el token de acceso para invocar la API. El token de acceso se proporcionará en el encabezado HTTP de autorización como token de portador. El sistema generará un token de firma de solicitud requerido y lo proporcionará en el encabezado HTTP Authorization2.
Punto de conexión de autorización
Para obtener un token de acceso para las llamadas a la API, primero tendrás que configurar un servidor de autorización con un ID de cliente y un secreto. Después, utilizarás una llamada POST : https://<your-oauth-endpoint>
para enviar la solicitud.
Solicitud
Campo | Descripción | Valor de muestra | Tipo de campo | ¿Obligatorio? |
---|---|---|---|---|
content-type | Indica el formato de la solicitud | application/x-www-form-urlencoded | Cadena | Sí |
grant_type | Método de autorización para la solicitud, como las credenciales del cliente | client-credentials&client_id=<client_id>&client_secret=<client_secret> | Cadena | Sí |
client_id | Tu identificador de solicitud registrado | a17c21ed& | Sí | |
client_secret | Secreto correspondiente al client_id | Sí |
Respuesta
Campo | Descripción | Valor de muestra | Tipo de campo | ¿Obligatorio? |
---|---|---|---|---|
content-type | Indica el formato del cuerpo de la respuesta | application/json | Cadena | Sí |
token_type | El público del token; indica el tipo de acceso a proporcionar | bearer | Sí | |
access_token | Un token de acceso que hace referencia al client_id | Sí | ||
expires_in | El tiempo de expiración del token de acceso en segundos | 86400 | Sí |
Errores
Campo | Descripción | Valor de muestra | Tipo de campo | ¿Obligatorio? |
---|---|---|---|---|
error | Se ha producido un error, como un parámetro no válido | invalid_request invalid_client invalid_grant | Cadena | Sí |
errorMessage | Mensaje de error personalizado que se utiliza para ayudar en el registro y la investigación del problema | Cadena | Sí |
Respuesta del punto de conexión JWK
Compartiremos una URL en la que podrás obtener los JWK para utilizarlos en la verificación. Por ejemplo: GET : https:// <WLT_Domain>/keys/public-keys --header Authorization : Bearer - Partner_client_api_key
Campo | Descripción |
---|---|
alg | Algoritmo de firma |
kty | Tipo de clave criptográfica |
kid | Identificador clave |
use | Cómo debe utilizarse la clave: para firmar (sig ) o para cifrar (enc ) |
x5t | Huella digital del certificado X.509 |
x5c | Cadena de certificados X.509 |
expires_on | Fecha de caducidad del certificado |
Solicitud de firma
Recomendamos que todas las solicitudes a la API se firmen utilizando un token web JSON (JWT). Estos son los pasos para firmar solicitudes:
- Configuraremos una clave privada RSA de 2048 bits firmada por CA.
- Publicaremos el certificado público a través de una URL JWK (como ya se ha mencionado).
- A continuación, crearemos un token JWT con reclamaciones de emisor, asunto, público y caducidad, y firmaremos el token utilizando la clave privada.
- El token JWT de Expedia tendrá los identificadores de clave kid y x5t, que contienen la huella digital del certificado de clave pública.
- Cuando realices una llamada a la API, extraerás el JWT de los encabezados de autorización y validarás la firma del JWT utilizando la clave pública de Expedia. Identificarás la clave (en caso de que haya varias claves en la URL JWK de Expedia) utilizando el encabezado kid.
- A continuación, programarás una llamada de API al punto de conexión JWK de Expedia para obtener el certificado de clave pública.
- También debes utilizar la lógica de reintento para obtener un nuevo certificado si falla la validación de la firma.