요청 URL 구성하기
요청 URL(부착 모듈에서 결과를 반환하는 URL)은 도메인, 엔드포인트, 요청 매개변수 및 서명 매개변수로 구성됩니다. 이 예시는 2022년 11월 12일에 예약된, 2023년 1월 2일에 출발하여 2023년 1월 12일에 귀국하는 성인 2명의 LAX행 확정 항공편을 보여줍니다.
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
요청 매개변수 구성
일반적으로 요청 매개변수에는 목적지, 여행 시작일 및 종료일 등 예약 내역에 관한 세부 정보가 포함됩니다. 이 정보는 어태치 모듈에 대한 추천 사항을 생성하는 데 사용됩니다. 요청에서 일부 매개변수는 선택 사항이지만, 결과를 반환하기 위해서는 일부 매개변수가 필수입니다.
사용 가능한 요청 매개변수
| 매개변수 | 설명 | 샘플 값 | 필수 항목 |
|---|---|---|---|
partnerId | Expedia에서 제공하는 문자열 값으로, 요청 매개변수에서 귀사의 조직을 식별하는 데 사용됩니다. | partnername_hotel_conf_overlay | 예 |
bookingStatus | 부속 요금을 적용할 수 있는지 여부를 결정하는 예약 상태를 지정하는 문자열 값입니다. 예약 상태가 ‘보류 중’이거나 ‘실패’인 경우, 부속 요금은 적용되지 않습니다. | 확정됨 | 예 |
bookingDateTime | 예약 날짜를 지정하는 문자열 값으로, 날짜, 시간 및 시간대가 ISO 8601 형식 | 2024-08-29T05:54:02 인코딩된 값: 2024-08-29T05%3A54%3A02 | 예 |
outboundEndDateTime | 목적지 도착을 나타내는 문자열 값으로, ISO 8601 형식의 날짜, 시간 및 시간대가 포함됩니다. | 2024-08-29T05:54:02 인코딩된 값: 2024-08-29T05%3A54%3A02 | 예 |
returnStartDateTime | 출발지에서 출발하는 시간을 나타내는 문자열 값으로, ISO 8601 형식의 날짜, 시간 및 시간대가 포함됩니다. 참고: 지정하지 않은 경우, 여행의 기본 기간은 7일입니다. | 2024-08-29T05:54:02 인코딩된 값: 2024-08-29T05%3A54%3A02 | — |
locale | 익스피디아에서 제공하는 5자 문자열로, 예약이 이루어진 언어를 나타냅니다. >> 전체 로케일 세부 정보는 여기에서 확인하세요 | en_US | 예 |
currencyCode | 익스피디아에서 제공하는, 예약 시 사용된 통화를 나타내는 문자열 | USD | 예 |
destinationTLA | 목적지의 국제항공운송협회(IATA) 공항 코드를 나타내는 3자 문자열 참고: 요청 URL에는 이 매개변수(항공편이 포함된 예약의 경우) 또는 latitude 및 longitude (항공편이 포함되지 않은 경우) 중 하나를 반드시 포함해야 합니다. | LAX | 조건부 필수 |
latitude 그리고 longitude | 여행 목적지의 좌표를 지정하는, 소수점 이하 최대 12자리까지의 부동 소수점 값입니다. 참고: 요청 URL에는 이 매개변수(항공편이 포함되지 않은 경우) 또는 destinationTLA (항공편이 포함된 예약의 경우) 중 하나가 반드시 포함되어야 합니다. | 위도=40.7141667 &경도=-74.0063889 | 조건부 필수 |
signature | 당사가 제공하는 비밀 키를 기반으로 생성할 27자 길이의 영숫자 문자열 값 | ||
| BcND1F7KElTyGtyUHeXHd2JJLFs | 예 | ||
numOfAdults | 예약에 포함된 성인 인원을 나타내는 정수; 최소 1명 | 2 | — |
numOfChildren | 예약에 포함된 하위 항목의 수를 나타내는 정수 | 3 | — |
childAges | Comma-delimited 예약에 포함된 자녀들의 나이를 나타내는 정수 배열; numOfChildren 가 전달된 경우에만 필수입니다. | 5,4,2 | 네, numOfChildren 가 전달된 경우 |
간단한 여행과 다소 복잡한 여행 모두에서 해당 수치를 이해하는 데 도움이 되도록 몇 가지 시나리오를 마련해 두었습니다.
요청 URL 구성하기
모든 요청 URL에는 도메인과 엔드포인트가 포함되며, 그 뒤에 요청 매개변수가 이어지고, 비밀 키로 생성된 서명으로 끝납니다.
비밀 키
비밀 키는 익스피디아와 안전하게 공유되는 영숫자 문자열로, 거래를 검증하는 서명을 생성하는 데 사용됩니다. 길이는 36자이며, #과 연결되어 있습니다.partnerId.
도메인, 엔드포인트 및 요청 매개변수
요청 URL은 도메인으로 시작합니다. 요청 URL인 protocol-agnostic: 및 //xsell.expedia.com/ 의 경우, 익스피디아 도메인을 그대로 유지하시기를 권장합니다. URL의 다음 부분은 요청 문자열로, case-sensitive 엔드포인트 /xsell-pwa.js? 와 요청 매개변수로 구성됩니다. 요청 매개변수는 #이어야 한다는 점을 기억하세요.UTF-8 percent-encoded.
1단계: 요청 문자열 구성하기
요청 문자열에는 엔드포인트와 요청 매개변수가 포함되지만(도메인은 제외됩니다). 대략 이런 모습이어야 합니다.
/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed
2단계: 요청서에 서명하기
1단계에서 얻은 문자열(선두의 / 포함)은 다음으로 서명되어야 합니다. hash-based 메시지 인증 알고리즘 (HMAC-SHA1)을 사용하여 익스피디아와 공유된 비밀 키를 적용합니다. 대부분의 암호화 라이브러리에서 생성된 서명은 이진 형식으로 제공됩니다.
이 암호화 해시 함수는 RFC 2104 컴퓨터 언어 및 프레임워크를 위한. 사용 가능한 구현 방식은 다음과 같습니다:
3단계: 생성된 서명을 인코딩합니다
수정된 것을 사용하여 이진 서명을 인코딩합니다. Base64 URL의 경우, Base64 출력에서 + 및 / 문자를 각각 - (하이픈)과 _ (밑줄)로 대체하여 URL에서 안전하게 사용할 수 있도록 합니다(참조: RFC 4648 (자세한 내용은). 다음과 비슷하게 보일 것입니다:
bj01fgT85mUiRmzxxSufSmlGpiI또한, Base64로 인코딩된 문자열에서 패딩 = (있는 경우)을 제거해야 한다는 점도 유의해야 합니다.
4단계: 최종 요청 URL 구성하기
3단계에서 생성한 서명을 1단계의 문자열에 ‘ signature ’ 매개변수로 추가합니다. 서명은 항상 최종 요청 URL의 마지막 매개변수로 지정되어야 합니다.
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
결과 문자열의 맨 앞에 프로토콜(// 또는 http:// 또는 https://)과 도메인( protocol-agnostic URL의 경우 //xsell.expedia.com 을 권장합니다)을 추가하십시오.
//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundStartDateTime=2024-10-22T11%3A55%3A00%2B08%3A00&outboundEndDateTime=2024-10-22T13%3A55%3A00%2B08%3A00&returnStartDateTime=2024-10-30T20%3A30%3A00%2B08%3A00&returnEndDateTime=2024-10-30T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2024-04-12T12%3A32%3A15%2B08%3A00&bookingId=123ABC&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
5단계: JavaScript 코드를 추가합니다.
모듈이 표시되어야 할 페이지에서 JavaScript src 속성으로 최종 요청 URL을 사용하게 됩니다. 예:
<<script src="//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTLA=LAX&numOfAdults=2&locale=en_US¤cyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI"></script>>
요청 URL을 생 성했다면, 이제 이를 페이지 코드에 통합할 준비가 된 것입니다.