요청 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 | 예약이 이루어진 언어를 나타내는 Expedia에서 제공하는 5자 문자열입니다. 여기에서 전체 로캘 세부 정보 를 확인하세요. | en_US | 예 |
currencyCode | 예약이 이루어진 통화를 나타내는 Expedia에서 제공하는 문자열입니다. | USD | 예 |
destinationTla | 국제 항공 운송 협회를 나타내는 3자 문자열(IATA) 목적지의 공항 코드 참고: 요청 URL에는 이 매개변수(항공편이 포함된 예약의 경우) 또는 latitude 및 longitude (항공편이 포함되지 않은 경우)이 포함되어야 합니다. | LAX | 조건부 필수 |
latitude 그리고 longitude | 여행 목적지의 좌표를 지정하는 소수점 이하 12자리까지의 실수 값입니다. 참고: 요청 URL에는 이 매개변수(항공편이 포함되지 않은 경우) 또는 destinationTla (항공편이 포함된 예약의 경우)가 포함되어야 합니다. | 위도=40.7141667 &longitude=-74.0063889 | 조건부 필수 |
signature | 당사가 제공하는 비밀 키를 기반으로 생성하는 27자 영숫자 문자열 값입니다. 자세한 내용은 요청 URL 작성하기 를 참조하세요. | BcND1F7KElTyGtyUHeXHd2JJLFs | 예 |
numOfAdults | 예약에 포함된 성인 수를 지정하는 정수(최소 1) | 2 | — |
numOfChildren | 예약에 포함된 어린이 수를 지정하는 정수입니다. | 3 | — |
childAges | Comma-delimited 예약에 포함된 모든 어린이의 나이를 지정하는 정수 배열, numOfChildren 을 전달한 경우에만 필요합니다. | 5,4,2 | 예, numOfChildren 전달된 경우 |
간단한 여행과 복잡한 여행 모두에 대한 값을 이해하는 데 도움이 되는 몇 가지 시나리오를 포함했습니다.
요청 URL 작성
모든 요청 URL에는 도메인 및 엔드포인트와 요청 매개변수가 포함되며, 비밀 키로 생성된 서명으로 끝납니다.
비밀 키
비밀 키는 Expedia에서 안전하게 공유하며 거래를 확인하는 서명을 생성하는 데 사용되는 영숫자 문자열입니다. 길이는 36자이며 #로 연결됩니다.partnerId.
도메인, 엔드포인트 및 요청 매개변수
요청 URL은 도메인으로 시작합니다. 요청 URL은 Expedia 도메인을 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단계: 결과 서명 인코딩
URL에 대해 수정된 Base64 을 사용하여 바이너리 서명을 인코딩하는데, 이 경우 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 코드 추가
모듈이 표시되어야 하는 페이지에서 최종 요청 URL을 JavaScript src
어트리뷰트로 사용합니다. 예:
<<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을 만들었으면 페이지 코드에 통합할 준비가 된 것입니다.