서명 생성 및 요청 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를 사용하여 바이너리 서명을 인코딩합니다. 이 방식은 Base64 출력에서 +및 /문자를 각각 - (하이픈)과 _ (언더스코어)로 대체하여 URL을 안전하게 만듭니다(자세한 내용은 RFC 4648 참조). 다음과 비슷하게 보일 것입니다:
bj01fgT85mUiRmzxxSufSmlGpiI
또한, 베이스64로 인코딩된 문자열에서 패딩 = (있는 경우)을 제거해야 한다는 점에 유의해야 합니다.
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단계: 최종 URL을 항공사 post-booking 경로(e.g. 이메일)에 삽입합니다.
체크리스트
다음 사항을 확인해 주시기 바랍니다:
- 서명
- 서명 형식이 16진수가 아닌 올바른 형식(Base64)입니다.
- Base64 인코딩으로 변환할 때 서명은 문자열이 아닌 정수로 처리됩니다.
- 필요한 경우 서명에서
+을-으로 바꾸십시오(Base64 인코딩을 통해 자동으로 처리될 것입니다):m6y13j0747-x/h81wEzR9jE1fco= - 필요한 경우 서명에서
/을_로 바꾸십시오(Base64 인코딩을 통해 자동으로 처리되어야 합니다):m6y13j0747-x_h81wEzR9jE1fco=
- 필요한 경우 서명에서
- Base64로 인코딩된 문자열에서 패딩
=(있는 경우)을 제거합니다. - 서명의 길이는 정확히 27자입니다.
- 비밀 키는 클라이언트 측에서는 공개되지 않으며, 서명을 생성할 때 서버 측에서만 사용되어야 합니다.
- 매개변수
- 모든 매개변수 값은 percent-encoded UTF-8.
- 필요한 모든 매개변수가 전달되었습니다.
- 도메인 및 엔드포인트
- Endpoint가 맞습니다
/xsell-redirect-pwa
- Endpoint가 맞습니다
- 최종 요청 URL은 도메인 + 엔드포인트 + 인코딩된 딥링크의 조합이어야 합니다.
URL+outboundEndDateTime(인코딩됨) +originTLA+returnStartDateTime(인코딩됨) +destinationTLA+bookingDateTime(인코딩됨) +PartnerId+attachDL+signature
테스트
테스트/본격 운영 환경에 배포하기 전에 모듈 연결 상태를 확인하십시오.
최종 요청 URL을 확인하십시오:
- 이 요청은 인코딩된 딥링크 URL에 포함된 검색 기준에 따라 숙박 시설 결과 페이지로 리디렉션됩니다.
참고: 익스피디아 솔루션은 운영 환경에서만 지원됩니다. pre-production 에서 테스트를 진행하고자 하는 파트너는 pre-production 을 익스피디아의 운영 환경으로 연결해야 합니다.