Esta traducción se ha generado automáticamente

Generar la firma y crear la URL de la solicitud

Lista de comprobación para generar la firma y crear la URL de la solicitud:

ConceptoOrigenNotas
Clave secreta / privadaPara compartirlo con Expedia Group.Una clave secreta es una cadena alfanumérica de 36 caracteres que se usa para generar una firma. Está relacionado con el partnerId.
Ejemplo: 6f437404-261d-4beb-a7fc-43b92f694831.
Nota: Guarda la clave secreta en un lugar seguro y úsala solo en server-side para generar la firma. No se debe pasar como parámetro al crear la URL.
DominioDominio asociadoEl elemento «domain» de tu página web.
Punto de conexión/xsell-redirect-pwa?Ten en cuenta que nuestro punto final es case-sensitive,, así que todos los nombres de los parámetros deben escribirse exactamente como aparecen en este documento.

Step-by-step guía

Paso 1: Crea la URL de la solicitud de enlace directo a la página de resultados del alojamiento

Crea la URL de la solicitud de enlace directo a la página de resultados del alojamiento utilizando el dominio del socio en lugar del dominio Expedia que aparece en el ejemplo. Configura los parámetros de búsqueda y el código de seguimiento según la guía de enlaces profundos.

Parámetros de la URL de la solicitud

ParámetrosTipoCampo obligatorioDescripciónValor de muestra
partnerIdCadenaYLo va a proporcionar Expedia Group.partnername-POS-Ext-Flight-Conf-EmailDL
urlCadenaYCrea la URL de solicitud de enlace directo para la página de resultados del hotel utilizando el dominio del socio, los parámetros de búsqueda y el código de seguimiento, siguiendo la guía de enlaces directos. Asegúrate de que el código de seguimiento (mdpcid) esté incluido y de que el valor del parámetro de salida sea el correcto: URL-encoded.
>> Lee la guía sobre enlaces profundos
url = https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3FMDPCID%3DExpedia-IE.DPS.en_IE.confemail.attachDL.Flight%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult-Room1%3D3%26NumChild-Room1%3D2%26Room1-Child1Age%3D9%26Room1-Child2Age%3D6
outboundEndDateTimeRepresentación como cadena de una fecha según la norma ISO 8601.YIndica la fecha y la hora de llegada del viaje al destino. Solo debe incluir la fecha, la hora y la zona horaria según la norma ISO 8601.

Hay que codificar el valor de este parámetro.
2025-10-30T20%3A12%3A17.928020Z
originTlaCadena (3 letras)YIndica el código del aeropuerto de origen del viaje: IATA.LAS
returnStartDateTimeRepresentación como cadena de una fecha según la norma ISO 8601.Solo es necesario para los viajes de ida y vueltaIndica la fecha y la hora de vuelta del viaje desde el destino. Solo puede incluir la fecha, la hora y la zona horaria según la norma ISO 8601.

Hay que codificar el valor de este parámetro.
2025-11-10T20%3A12%3A17.928020Z
destinationTlaCadena (3 letras)YIndica el código del aeropuerto de IATA, el destino del viaje.JFK
bookingDateTimeRepresentación como cadena de una fecha según la norma ISO 8601.YIndica la fecha y la hora de la reserva. Solo puede incluir la fecha, la hora y la zona horaria según la norma ISO 8601.

Hay que codificar el valor de este parámetro.
2025-07-25T20%3A12%3A17.928020Z
bookingStatusCadenaSi no se indica lo contrario, damos por hecho que la reserva está confirmada.Los valores válidos para este parámetro son: confirmed, pendingo failed
. Nota:. Las tarifas con descuento solo se aplican cuando bookingStatuses confirmed.
confirmed
attachDLBooleanoYEstablece el valor en «true» para activar las tarifas de conexión con descuento.true
signatureCadenaYserver-side generado por el socio a partir de una clave secreta facilitada por Expedia Group. Esta cadena tiene exactamente 27 caracteres. Codifica la firma binaria resultante.BcND1F7KElTyGtyUHeXHd2JJLFs

Nota: Los parámetros de solicitud de distinguen entre mayúsculas y minúsculas. Si no respetas las mayúsculas y minúsculas, te saldrá un error.

URL de la solicitud de enlace directo:

https://expedia.com/go/hotel/search/Destination/2025-12-22/2025-12-25?MDPCID=Expedia-IE.DPS.en_IE.confemail.attachDL.Flight&CityName=ORD&SortBy=distance&NumRoom=1&NumAdult-Room1=3&NumChild-Room1=2&Room1-Child1Age=9&Room1-Child2Age=6

Paso 2: Codifica la URL del enlace directo usando UTF-8

URL de enlace directo codificada:

https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3FMDPCID%3DExpedia-IE.DPS.en_IE.confemail.attachDL.Flight%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult-Room1%3D3%26NumChild-Room1%3D2%26Room1-Child1Age%3D9%26Room1-Child2Age%3D6

Paso 3: Añade todos los parámetros necesarios para activar las tasas de conexión

outboundEndDateTime(codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + partnerid +attachDL

Paso 4: Crea la URL para generar la firma (sin incluir el dominio)

endpoint+ enlace directo codificado url + outboundEndDateTime (codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + partnerid +attachDL

Ejemplo

/xsell-redirect-pwa?url=https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6&outboundEndDateTime=2025-10-30T20%3A12%3A17.928020Z&destinationTLA=LAS&returnStartDateTime=2025-11-10T20%3A12%3A17.928020Z&originTLA=JFK&bookingDateTime=2025-07-25T20%3A12%3A17.928020Z&attachDL=true&partnerid=new-pwa-xsell-testing-airnz

Nota: Sustituye « Expedia » por tu marca

Paso 5: Firmar la solicitud/generar la firma

La cadena (URL) que has obtenido en el paso 4 debe firmarse con el algoritmo HMAC-SHA1 utilizando la clave secreta/privada compartida por Expedia Group. En la mayoría de las bibliotecas criptográficas, la firma resultante estará en formato binario, así que puede que tengas que decodificar la clave para recuperarla en su formato binario original.

Hay muchas implementaciones de esta función hash criptográfica definida en el RFC 2104 para varios lenguajes de programación y marcos de trabajo. La siguiente lista es una selección de las implementaciones disponibles:

  • Java
  • JavaScript
  • C#
  • Python
  • Ruby

Paso 6: Codifica la firma binaria resultante

Codifica la firma binaria utilizando Base64URL modificado, que sustituye los caracteres « + » y « / » de la salida de Base64URL por « - » (guión) y « _ » (guión bajo), respectivamente, para que la URL sea segura (consulta el RFC 4648 para obtener más información). La firma debe tener exactamente 27 caracteres.

Ejemplos

bj01fgT85mUiRmzxxSufSmlGpiI

9Wzh3Er5-ob35Hbxbk1ltyYHex4

FeW_4NNu4ITpGaSt1KZl-vLb9PI

Además, es importante tener en cuenta que hay que eliminar el relleno = (si lo hay) de la cadena codificada en Base64URL.

Paso 7: Crear la URL de la solicitud final

Crea la URL definitiva del enlace directo con estos elementos:

domain+ endpoint + enlace profundo codificado url + outboundEndDateTime (codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + partnerid + attachDL +signature

Ejemplo

https://www.expedia.com/xsell-redirect-pwa?url=https%3A%2F%2Fexpedia.com%2Fgo%2Fhotel%2Fsearch%2FDestination%2F2025-12-22%2F2025-12-25%3Fmdpcid%3DExpedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel%26CityName%3DORD%26SortBy%3Ddistance%26NumRoom%3D1%26NumAdult1%3D3%26NumChild1%3D2%26Rm1child1age%3D9%26Rm1child2age%3D6&outboundEndDateTime=2025-10-30T20%3A12%3A17.928020Z&destinationTla=LAS&returnStartDateTime=2025-11-10T20%3A12%3A17.928020Z&originTla=JFK&bookingDateTime=2025-07-25T20%3A12%3A17.928020Z&attachDL=true&partnerId=new-pwa-xsell-testing-airnz&signature=3WQjtTHsSCRxrogs3xhY7edWfgE

Paso 8: Incrusta la URL final en la ruta « post-booking » de la aerolínea

Lista de comprobación

Antes de insertarlo en una ruta de « post-booking » (como un correo electrónico), comprueba los siguientes elementos.

Firma

  • En formato Base64URL (no hexadecimal).
  • Se trata como un número entero (no como una cadena) al convertirlo a la codificación Base64URL: sustituye +por -y /por _si es necesario. Por ejemplo: m6y13j0747-x_h81wEzR9jE1fco=.
  • Elimina el relleno « = » (si lo hay) de la cadena codificada en Base64URL.
  • Tiene exactamente 27 caracteres.
  • La clave secreta no es visible públicamente en el lado del cliente.

Parámetros

Dominio y punto final

  • El valor correcto es /xsell-redirect-pwa.
  • La URL de la solicitud final debe ser una combinación de domain + endpoint + enlace profundo codificado url + outboundEndDateTime (codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + partnerid + attachDL + signature

Pruebas

Comprueba el módulo adjunto antes de la implementación en entorno de pruebas o de producción. La solicitud debería redirigirte a la página de resultados del alojamiento según los criterios de búsqueda que aparecen en la URL del enlace profundo codificado.

Nota: La solución Expedia solo es compatible con entornos de producción. Si quieres hacer pruebas en pre-production,, tendrás que redirigir tu dominio pre-production al dominio de producción Expedia's.

¿Te ha resultado útil esta página?
¿Cómo podemos mejorar este contenido?
¡Gracias por ayudarnos a mejorar!