Gere a assinatura e construa a URL da solicitação.
Lista de verificação para gerar a assinatura e construir a URL da solicitação:
| Item | Valor | Observações |
|---|---|---|
| Chave secreta/privada | Para ser compartilhado por Expedia Group. | Uma chave secreta é uma sequência alfanumérica compartilhada de forma segura por Expedia Group e usada para gerar uma assinatura. Será uma sequência de 36 caracteres e estará associada ao PartnerId.Por exemplo 6f437404-261d-4beb-a7fc-43b92f694831Nota: Deve ser mantido em local seguro e usado apenas no server-side para gerar a assinatura. A chave secreta não deve ser passada como parâmetro durante a construção da URL. |
| Domínio | Domínio do parceiro | |
| Ponto de extremidade | /xsell-redirect-pwa? | Observe também que nosso endpoint é case-sensitive, portanto, todos os nomes de parâmetros devem ser escritos exatamente como mostrado neste documento. |
Guia Step-by-step
Passo 1: Construa a URL de solicitação de link direto para a página de resultados propriedade
Construa a URL de solicitação de link direto para a página de resultados propriedade usando o domínio do parceiro em vez do domínio da Expedia no exemplo. Formate os parâmetros de pesquisa e o código de rastreamento conforme o guia de deeplink aqui .
URL de solicitação de deeplink:
https://expedia.com/go/hotel/search/Destination/2025-12-22/2025-12-25?mdpcid=Expedia-IE.DPS.Expedia.ExtFlightEmail-Xsell_CTA.Hotel&CityName=ORD&SortBy=distance&NumRoom=1&NumAdult1=3&NumChild1=2&Rm1child1age=9&Rm1child2age=6
Etapa 2: Codifique o URL do deeplink usando UTF-8
URL de deeplink codificada:
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
Etapa 3: Adicione todos os parâmetros necessários para habilitar as taxas de conexão.
outboundEndDateTime(codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + PartnerId +attachDL
Etapa 4: Construir URL para geração de assinatura (não incluir domínio)
Endpoint + URL de Deeplink codificada + outboundEndDateTime (codificada) + originTLA + returnStartDateTime (codificada) + destinationTLA + bookingDateTime (codificada) + PartnerId +attachDL
Exemplo
/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
Etapa 5: Assinar a solicitação/gerar a assinatura
A string (URL) obtida na Etapa 4 deve ser assinada usando o algoritmo HMAC-SHA1 com a chave secreta/privada compartilhada por Expedia Group. Na maioria das bibliotecas criptográficas, a assinatura resultante estará em formato binário, podendo ser necessário decodificar a chave para seu formato binário original.
Existem diversas implementações dessa função hash criptográfica definidas na RFC 2104 para várias linguagens e frameworks de computador. A lista a seguir é um subconjunto das implementações disponíveis:
- Java
- JavaScript
- C#
- Python
- Ruby
Etapa 6: Codifique a assinatura binária resultante
Codifique a assinatura binária usando Base64 modificado para URLs, que substitui os caracteres +e /da saída Base64 por - (hífen) e _ (sublinhado), respectivamente, para tornar a URL segura (consulte RFC 4648 para obter informações adicionais). Deverá ficar semelhante a isto:
bj01fgT85mUiRmzxxSufSmlGpiI
Além disso, é importante observar que o preenchimento = (se houver) deve ser removido da string codificada em base64.
Etapa 7: Construindo a URL de solicitação final
Construa a URL final do deeplink conforme mostrado abaixo:
Domínio + Endpoint + URL de Deeplink Codificado + outboundEndDateTime (codificado) + originTLA + returnStartDateTime (codificado) + destinationTLA + bookingDateTime (codificado) + PartnerId + attachDL +signature
Exemplo:
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
Passo 8: Incorpore o URL final no caminho post-booking da companhia aérea (e.g.email)
Lista de verificação
Por favor, certifique-se do seguinte:
- Assinatura
- A assinatura está no formato correto (Base64), não em hexadecimal.
- A assinatura é tratada como um número inteiro (e não como uma string) ao ser convertida para a codificação Base64.
- Substitua
+por-na assinatura, se necessário (a codificação Base64 deve fazer isso automaticamente):m6y13j0747-x/h81wEzR9jE1fco= - Substitua
/por_na assinatura, se necessário (a codificação Base64 deve fazer isso automaticamente):m6y13j0747-x_h81wEzR9jE1fco=
- Substitua
- Remova o preenchimento
=(se houver) da string codificada em Base64. - A assinatura tem exatamente 27 caracteres.
- A chave secreta não é visível publicamente no lado do cliente; ela deve ser usada apenas no lado do servidor para gerar a assinatura.
- Parâmetros
- Todos os valores dos parâmetros são percent-encoded UTF-8.
- Todos os parâmetros necessários foram passados.
- Domínio e ponto final
- O endpoint está correto
/xsell-redirect-pwa
- O endpoint está correto
- A URL da solicitação final deve ser uma combinação de Domínio + Endpoint + Deeplink codificado
URL+outboundEndDateTime(codificado) +originTLA+returnStartDateTime(codificado) +destinationTLA+bookingDateTime(codificado) +PartnerId+attachDL+signature
Testes
Verifique se o módulo está anexado antes da implantação em ambiente de teste/produção.
Verifique o URL da solicitação final:
- A solicitação será redirecionada para a página de resultados propriedade com base nos critérios de pesquisa no URL de link direto codificado.
Nota: A solução Expedia suporta apenas um ambiente de produção. Os parceiros que desejarem realizar testes em um ambiente pre-production precisarão direcionar seus pre-production para o ambiente de produção da Expedia.