구현 및 설정
포인트나 마일리지 이상의 가치를 여행객에게 제공
화이트 레이블 템플릿을 사용하면 여행객은 프로그램에서 정의한 로열티 통화를 적립한 후 여행 상품 구매 시 리워드를 사용할 수 있습니다. 이 문서에서는 사용 가능한 로열티 작업에 대한 개요를 제공하고 테스트 및 프로덕션 환경에서 서비스를 구현하는 프로세스를 설명합니다.
파트너사는 JSON 페이로드로 표준 RESTFul 서비스를 제공합니다. 모든 API 요청에 액세스 토큰과 JSON 웹 토큰을 사용하는 것이 좋습니다. API를 호출할 때는 추가 보안 단계가 필요하며, 요청 및 응답 페이로드의 모든 민감한 데이터 요소는 암호화됩니다.
템플릿 사이트를 설정할 때 선택한 사업 분야에서 고객이 적립한 로열티 통화를 사용할 수 있도록 선택할 수 있습니다.
또는 Expedia 브랜드 사이트 상담원에게 연락하여 해당 포인트를 사용할 수 있습니다. 저희 내부 상담원은 계정 정보 API를 사용하여 여행객의 정보를 확인합니다. 확인이 완료되면 포인트 뱅크 API를 활용하여 여행객의 계정 잔액을 확인하고 예약을 지원합니다.
Expedia 출시 관리자는 SSO 설정을 포함하여 브랜드나 프로그램 이름, 프로그램 내 회원 등급이나 분류, 로열티 통화 이름, 사용 비율(예: $1 지출 = 100포인트) 등 필요한 모든 세부 정보를 얻을 수 있도록 협력합니다.
또한 다음 정보도 제공해야 합니다.
- 액세스 토큰 API
- 클라이언트 ID와 암호
- 로열티 사용 엔드포인트
- 고객에게 전달한 서비스 수준 계약(SLA)
설정을 위해 다음을 제공해 드립니다.
- OpenAPI 사양
- Authorization2 매개변수를 사용하는 경우 JSON 웹 키(JWK) 엔드포인트
API 호출하기
Expedia는 액세스 토큰을 사용하여 API를 호출합니다. 액세스 토큰은 HTTP 승인 헤더에 Bearer 토큰으로 제공됩니다. 시스템은 필요한 요청 서명 토큰을 생성하고 Authorization2 HTTP 헤더에 이를 제공합니다.
승인 엔드포인트
API 호출을 위한 액세스 토큰을 받으려면 먼저 클라이언트 ID와 암호를 사용하여 승인 서버를 설정해야 합니다. 그런 다음 POST : https://<your-oauth-endpoint>
호출을 사용하여 요청을 수행합니다.
요청
필드 | 설명 | 샘플 값 | 필드 유형 | 필수 여부 |
---|---|---|---|---|
content-type | 요청 형식을 나타냄 | application/x-www-form-urlencoded | String | 예 |
grant_type | 클라이언트 로그인 정보와 같은 요청에 대한 승인 방법 | client-credentials&client_id=<client_id>&client_secret=<client_secret> | String | 예 |
client_id | 애플리케이션 식별자가 등록됨 | a17c21ed& | 예 | |
client_secret | client_id 에 해당하는 암호 | 예 |
응답
필드 | 설명 | 샘플 값 | 필드 유형 | 필수 여부 |
---|---|---|---|---|
content-type | 응답 본문 형식을 나타냄 | application/json | String | 예 |
token_type | 토큰의 대상. 제공할 액세스 권한의 종류를 나타냅니다. | bearer | 예 | |
access_token | client_id 를 참조하는 액세스 토큰 | 예 | ||
expires_in | 액세스 토큰의 만료 시간(초) | 86400 | 예 |
오류
필드 | 설명 | 샘플 값 | 필드 유형 | 필수 여부 |
---|---|---|---|---|
error | 잘못된 매개변수 등의 오류 발생 | invalid_request invalid_client invalid_grant | String | 예 |
errorMessage | 로깅 및 문제 조사를 지원하기 위해 사용되는 사용자 지정 오류 메시지 | String | 예 |
JWK 엔드포인트 응답
인증에 사용할 JWK를 가져올 수 있는 URL을 공유해 드립니다. 예: GET : https:// <WLT_Domain>/keys/public-keys --header Authorization : Bearer - Partner_client_api_key
필드 | 설명 |
---|---|
alg | 서명 알고리즘 |
kty | 암호화 키 유형 |
kid | 키 식별자 |
use | 키 사용 방법: 서명(sig ) 또는 암호화(enc ) |
x5t | X.509 인증서 지문 |
x5c | X.509 인증서 체인 |
expires_on | 인증서 만료 날짜 |
서명 요청
모든 API 요청은 JSON 웹 토큰(JWT)을 사용하여 서명하는 것이 좋습니다. 요청 서명 단계는 다음과 같습니다.
- 2048비트 CA 서명 RSA 개인 키를 설정합니다.
- 위에서 언급한 대로 JWK URL을 통해 공개 인증서를 게시합니다.
- 그런 다음 발행자, 주체, 대상 및 만료 클레임이 포함된 JWT 토큰을 생성하고 개인 키를 사용하여 토큰에 서명합니다.
- Expedia JWT 토큰에는 키 식별자 kid와 x5t가 있으며, 여기에는 공개 키 인증서의 지문이 포함되어 있습니다.
- API 호출을 수행할 때 승인 헤더에서 JWT를 추출하고 Expedia의 공개 키를 사용하여 JWT 서명을 검증합니다. 키 헤더를 사용하여 키(Expedia의 JWK URL에 여러 개의 키가 있는 경우)를 식별합니다.
- 다음으로 Expedia의 JWK 엔드포인트에 대한 API 호출을 예약하여 공개 키 인증서를 가져옵니다.
- 또한 서명 검증에 실패하는 경우 재시도 로직을 사용하여 새 인증서를 가져와야 합니다.