서명 및 빌드 요청 URL 생성
서명 생성 및 요청 URL 구축을 위한 체크리스트입니다:
| 항목 | 값 | 참고 |
|---|---|---|
| 비밀/개인 키 | 공유 대상 Expedia Group. | 비밀 키는 Expedia Group 에서 안전하게 공유하며 서명을 생성하는 데 사용되는 영숫자 문자열입니다. 36자 길이의 문자열이며 PartnerId.예: 6f437404-261d-4beb-a7fc-43b92f694831참고: 안전한 장소에 보관하고 server-side 에서만 서명을 생성하는 데 사용해야 합니다. URL을 구성하는 동안 비밀 키 를 매개변수로 전달해서는 안 됩니다. |
| 도메인 | 파트너 도메인 | |
| 엔드포인트 | /xsell-redirect-pwa? | 또한 엔드포인트 는 case-sensitive 이므로 모든 매개변수 이름의 철자는 이 문서에 표시된 대로 정확하게 입력해야 합니다. |
Step-by-step 가이드
1단계: 숙박 시설 결과 페이지로 디딥링크 요청 URL을 작성합니다.
예제에서 익스피디아 도메인 대신 파트너 도메인을 사용하여 숙박 시설 결과 페이지로 연결되는 딥링크 요청 URL을 작성합니다. 여기에서 딥링크 가이드( )에 따라 검색 매개변수와 추적 코드 형식을 지정하세요 .
딥링크 요청 URL:
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
2단계: #를 사용하여 디링크 URL을 인코딩합니다.UTF-8
인코딩된 디링크 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
3단계: 모든 필수 매개변수를 추가하여 요금 첨부 활성화하기
outboundEndDateTime(인코딩됨) + originTLA + returnStartDateTime (인코딩됨) + destinationTLA + bookingDateTime (인코딩됨) + PartnerId +attachDL
4단계: 서명 생성을 위한 URL 구성(도메인 포함하지 않음)
엔드포인트 + 인코딩된 딥링크 URL + outboundEndDateTime (인코딩됨) + originTLA + returnStartDateTime (인코딩됨)+ destinationTLA + bookingDateTime (인코딩됨) + PartnerId + attachDL
예
/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
5단계: 요청 서명/서명 생성하기
4단계에서 얻은 문자열(URL)은 다음에서 공유하는 비밀/개인 키를 사용하여 HMAC-SHA1 알고리즘을 사용하여 서명해야 합니다. Expedia Group. 대부분의 암호화 라이브러리에서 결과 서명은 이진 형식이므로 키를 원래의 이진 형식으로 디코딩해야 할 수 있습니다.
이 암호화 해시 함수는 여러 컴퓨터 언어와 프레임워크에 대해 RFC 2104에 정의된 많은 구현이 있습니다. 다음 목록은 사용 가능한 구현의 하위 집합입니다:
- Java
- 자바스크립트
- C#
- Python
- Ruby
6단계: 결과 바이너리 서명 인코딩하기
URL을 안전하게 만들기 위해 Base64 출력의 +및 /문자를 각각 - (하이픈) 및 _ (밑줄)으로 대체하는 수정된 URL용 Base64를 사용하여 바이너리 서명을 인코딩합니다(자세한 내용은 RFC 4648 참조). 다음과 비슷하게 보일 것입니다:
bj01fgT85mUiRmzxxSufSmlGpiI
또한 base64로 인코딩된 문자열에서 = (있는 경우) 패딩을 제거해야 한다는 점에 유의해야 합니다.
7단계: 최종 요청 URL 작성
아래와 같이 최종 딥링크 URL을 작성합니다:
도메인 + 엔드포인트 + 인코딩된 딥링크 URL + outboundEndDateTime (인코딩됨) + originTLA + returnStartDateTime (인코딩됨) + destinationTLA + bookingDateTime (인코딩됨) + PartnerId + attachDL + signature
예시:
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
8단계: 항공사 post-booking 경로(e.g. 이메일)에 최종 URL을 임베드합니다.
체크리스트
다음 사항을 확인하세요:
- 서명
- 서명이 16진수가 아닌 올바른 형식(Base64)으로 되어 있습니다.
- 서명은 Base64 인코딩으로 변환할 때 문자열이 아닌 정수로 처리됩니다.
- 필요한 경우 서명에서
+을-으로 바꿉니다(Base64 인코딩은 자동으로 이 작업을 수행합니다):m6y13j0747-x/h81wEzR9jE1fco= - 필요한 경우 서명에서
/을_으로 바꿉니다(Base64 인코딩은 자동으로 이 작업을 수행합니다):m6y13j0747-x_h81wEzR9jE1fco=
- 필요한 경우 서명에서
- Base64 인코딩 문자열에서 패딩
=(있는 경우)을 제거합니다. - 서명은 정확히 27자 길이입니다.
- 비밀 키는 클라이언트 측에서는 공개적으로 볼 수 없으며, 서버 측에서만 서명을 생성하는 데 사용해야 합니다.
- 매개변수
- 모든 매개변수 값은 다음과 같습니다. percent-encoded UTF-8.
- 모든 필수 매개변수가 전달됩니다.
- 도메인 및 엔드포인트
- 엔드포인트가 정확합니다.
/xsell-redirect-pwa
- 엔드포인트가 정확합니다.
- 최종 요청 URL은 도메인 + 엔드포인트 + 인코딩된 딥링크
URL+outboundEndDateTime(인코딩됨) +originTLA+returnStartDateTime(인코딩됨) +destinationTLA+bookingDateTime(인코딩됨) +PartnerId+attachDL+의 조합이어야 합니다.signature
테스트
테스트/프로덕션 배 포 전에 첨부 모듈을 확인합니다.
최종 요청 URL을 확인합니다:
- 요청은 인코딩된 디디링크 URL의 검색 기준에 따라 숙박 시설 결과 페이지로 리디렉션됩니다.
참고: Expedia 솔루션은 프로덕션 환경만 지원합니다. pre-production 에서 테스트를 원하는 파트너는 pre-production 을 익스피디아의 프로덕션으로 연결해야 합니다.