서명 생성 및 요청 URL 생성
서명 생성 및 요청 URL 구성에 대한 체크리스트:
| 항목 | 소스 | 참고 |
|---|---|---|
| 비밀 키 / 개인 키 | 공유할 사람: Expedia Group. | 비밀 키는 서명을 생성하는 데 사용되는 36자 길이의 영숫자 문자열입니다. 이는 .과 관련이 있습니다 partnerId. 예시: 6f437404-261d-4beb-a7fc-43b92f694831. 참고: 비밀 키는 안전한 장소에 보관하고, 서명을 생성할 때 server-side 에서만 사용하십시오. URL을 구성 할 때 이를 매개변수로 전달해서는 안 됩니다. |
| 도메인 | 파트너 도메인 | 귀하의 웹사이트의 도메인 요소입니다. |
| 엔드포인트 | /xsell-redirect-pwa? | 당사의 엔드포인트는 case-sensitive, 이므로, 모든 매개변수 이름은 본 문서에 표시된 대로 정확히 표기해야 합니다. |
Step-by-step 안내서
1단계: 숙박 시설 결과 페이지로 연결되는 딥링크 요 청 URL을 생성합니다.
예시에서 익스피디아 도메인 대신 파트너 도메인을 사용하여 숙박 시설 결과 페이지로 연결되는 딥링크 요청 URL을 생성하십시오. 딥링크 가이드에 따라 검색 매개변수와 추적 코드를 형식화하십시오.
요청 URL 매개변수
| 매개변수 | 유형 | 필수 항목 | 설명 | 샘플 값 |
|---|---|---|---|---|
partnerId | String | Y | 제공처: Expedia Group. | partnername-POS-Ext-Flight-Conf-EmailDL |
url | String | Y | 딥링크 가이드에 따라 파트너 도메인, 검색 매개변수 및 추적 코드를 사용하여 호텔 검색 결과 페이지용 딥링크 요청 URL을 생성하세요. 추적 코드(mdpcid)가 포함되어 있는지 확인하고, 출력 매개변수의 값이 올바르게 설정되어 있는지 확인하십시오. URL-encoded.>> 딥링크 가이드 읽기 | 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 |
outboundEndDateTime | ISO 8601 표준을 따르는 날짜의 문자열 표현. | Y | 목적지에 도착하는 여행 일자와 시간을 지정하십시오. 여기에는 ISO 8601 표준에 따른 날짜, 시간 및 시간대 만 포함되어야 합니다. 이 매개변수 값은 인코딩되어야 합니다. | 2025-10-30T20%3A12%3A17.928020Z |
originTla | 문자열 (3글자) | Y | 여행 출발지의 ‘ IATA ’ 공항 코드를 지정하십시오. | LAS |
returnStartDateTime | ISO 8601 표준을 따르는 날짜의 문자열 표현. | 왕복 여행 시에만 필요합니다 | 목적지에서 출발하는 귀국 일자와 시간을 지정하십시오. ISO 8601 표준에 따라 날짜, 시간 및 시간대만 포함될 수 있습니다. 이 매개변수 값은 인코딩되어야 합니다. | 2025-11-10T20%3A12%3A17.928020Z |
destinationTla | 문자열 (3글자) | Y | 여행 목적지의 ‘ IATA ’ 공항 코드를 입력하십시오. | JFK |
bookingDateTime | ISO 8601 표준을 따르는 날짜의 문자열 표현. | Y | 예약된 일자와 시간을 지정해 주세요. ISO 8601 표준에 따라 날짜, 시간 및 시간대만 포함될 수 있습니다. 이 매개변수 값은 인코딩되어야 합니다. | 2025-07-25T20%3A12%3A17.928020Z |
bookingStatus | String | 별도로 안내가 없는 경우, 예약이 확정된 것으로 간주합니다. | 이 매개변수에 허용되는 값은 다음과 같습니다: confirmed, pending또는 failed참고: 할인 요율은 bookingStatus가 confirmed일 때만 적용됩니다. | confirmed |
attachDL | 부울 | Y | 할인된 부착 요율을 적용하려면 이 값을 true로 설정하십시오. | true |
signature | String | Y | 파트너가 다음에서 제공한 비밀 키를 기반으로 server-side 을 생성했습니다. Expedia Group. 이 문자열의 길이는 정확히 27자입니다. 결과로 나온 바이너리 서명을 인코딩합니다. | BcND1F7KElTyGtyUHeXHd2JJLFs |
참고: 요청 매개변수는 대소문자를 구분합니다. 대소문자를 잘못 입력하면 오류가 발생합니다.
딥링크 요청 URL:
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
2단계: #을 사용하여 딥링크 URL을 인코딩합니다.UTF-8
인코딩된 딥링크 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
3단계: 연결률을 활성화하기 위해 필요한 모든 매개변수를 추가합니다.
outboundEndDateTime(인코딩됨) + originTLA + returnStartDateTime (인코딩됨) + destinationTLA + bookingDateTime (인코딩됨) + partnerid +attachDL
4단계: 서명 생성을 위한 URL 구성 (도메인은 포함하지 마세요)
endpoint+ 인코딩된 딥링크 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참고: ‘ Expedia ’을 귀사의 브랜드명으로 대체하십시오.
5단계: 요청서에 서명하기/서명 생성하기
4단계에서 얻은 문자열(URL)은 다음에서 공유하는 비밀 키/개인 키를 사용하여 HMAC-SHA1 알고리즘으로 서명해야 합니다. Expedia Group. 대부분의 암호화 라이브러리에서 생성된 서명은 이진 형식일 수 있으므로, 키를 원래의 이진 형식으로 디코딩해야 할 수도 있습니다.
RFC 2104에 정의된 이 암호 해시 함수는 여러 컴퓨터 언어와 프레임워크를 대상으로 다양한 구현체가 존재합니다. 다음 목록은 사용 가능한 구현 방식 중 일부입니다:
- Java
- 자바스크립트
- C#
- Python
- Ruby
6단계: 생성된 바이너리 서명을 인코딩합니다.
수정된 Base64URL을 사용하여 바이너리 서명을 인코딩합니다. 이 방법은 Base64URL 출력의 +및 /문자를 각각 - (하이픈)과 _ (밑줄)로 대체하여 URL을 안전하게 만듭니다(자세한 내용은 RFC 4648 참조). 서명 길이는 정확히 27자여야 합니다.
예
bj01fgT85mUiRmzxxSufSmlGpiI
9Wzh3Er5-ob35Hbxbk1ltyYHex4
FeW_4NNu4ITpGaSt1KZl-vLb9PI또한, Base64URL로 인코딩된 문자열에서 패딩 = (있는 경우)을 제거해야 한다는 점에 유의해야 합니다.
7단계: 최종 요청 URL 구성하기
다음 요소들을 사용하여 최종 딥링크 URL을 구성하십시오:
domain+ endpoint + 인코딩된 딥링크 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 경로에 삽입합니다.
체크리스트
post-booking 경로(예: 이메일)에 삽입하기 전에 다음 항목을 확인하십시오.
서명
- Base64URL 형식(16진수가 아님)으로.
- Base64URL 인코딩으로 변환할 때 정수(문자열이 아님)로 처리됩니다: 필요한 경우
+을-으로,/을_으로 변경하십시오. 예를 들어:m6y13j0747-x_h81wEzR9jE1fco=. - Base64URL로 인코딩된 문자열에서 패딩
=(있는 경우)을 제거합니다. - 정확히 27자입니다.
- 비밀 키는 클라이언트 측에서 공개적으로 표시되지 않습니다.
매개변수
- 값은 다음과 같습니다. percent-encoded UTF-8
>> UTF-8 퍼센트 인코딩에 대해 읽어보세요. - 필요한 모든 매개변수가 전달되었습니다.
도메인 및 엔드포인트
- 정답은
/xsell-redirect-pwa입니다. - 최종 요청 URL은
domain+endpoint+ 인코딩된 딥링크url+outboundEndDateTime(인코딩됨) +originTLA+returnStartDateTime(인코딩됨) +destinationTLA+bookingDateTime(인코딩됨) +partnerid+attachDL+signature