일반적인 워크플로우의 사용 예시
복수 지역
지역 API는 지정된 매개변수와 일치하는 지역의 지리적 정의 및 숙박 시설 매핑을 반환합니다.
응답은 페이지가 지정된 지역 목록이며, SDK를 사용하여 추가 결과 페이지를 가져올 수 있습니다. 이 서비스에 대한 자세한 내용은 에서 지리 API 문서를 참조하시기 바랍니다.
GetRegionsOperationParams regionsOperationParams = GetRegionsOperationParams
.builder()
.language("en_US")
.include(List.of("details"))
/* ... */
.build();
GetRegionsOperation getRegionsOperation = new GetRegionsOperation(regionsOperationParams);
List<List<Region>> pages = new ArrayList<>();
rapidClient.getPaginator(getRegionsOperation).forEachRemaining(page -> pages.add(page.getData()));위의 예에서 pages에는 모든 지역이 있으며 필요에 따라 반복할 수 있습니다. 또 다른 옵션은 forEachRemaining 람다 함수에 필요한 기능을 직접 포함시키는 것입니다.
즉시 예약
당사의 모듈형 API는 여행자가 숙박 시설 예약을 완료하는 데 필요한 모든 데이터 포인트를 제공합니 다. Rapid API 의 작동 방식 및 파트너에게 제공되는 혜택에 대한 자세한 내용은 Rapid Lodging API 문서를 참조하십시오.
1. 조회
조회 API는 지정된 숙박 시설(요청당 최대 250개의 숙박 시설)의 모든 객실 유형에 대한 요금 및 예약 가능 여부를 반환합니다. 응답에는 해당 시장의 가격 표시 요건을 충족할 수 있도록 프로모션, 요금 환불 가능 여부, 취소 위약금과 전체 요금 내역 등의 요금 세부 정보가 포함됩니다. 이 서비스에 대한 자세한 내용은 조회 API 문서를 참조하십시오.
예약 가능 여부 가져오기
GetAvailabilityOperationParams getAvailabilityOperationParams = GetAvailabilityOperationParams.builder()
.checkin("YYYY-MM-DD")
.checkout("YYYY-MM-DD")
.currency("USD")
.language("en_US")
.countryCode("US")
.occupancy(List.of("OCCUPANCY"))
.propertyId(List.of("PROPERTY ID"))
.customerIp("127.0.0.1")
.ratePlanCount(BigDecimal.ONE)
.salesChannel("SALES CHANNEL")
.salesEnvironment("SALES ENVIRONMENT")
.build();
GetAvailabilityOperation getAvailabilityOperation = new GetAvailabilityOperation(getAvailabilityOperationParams);
Response<List<Property>> propertiesResponse = rapidClient.execute(getAvailabilityOperation);객실 요금 확인
Property property = propertiesResponse.getData().get(0);
if (!(property instanceof PropertyAvailability)) {
return;
}
PropertyAvailability propertyAvailability = (PropertyAvailability) property;
PriceCheckOperationLink priceCheckOperationLink = propertyAvailability.getRooms().get(0).getRates().get(0).getBedGroups().entrySet().stream().findFirst().get().getValue().getLinks().getPriceCheck(); // selecting the first rate for the first room
PriceCheckOperationContext priceCheckOperationContext = PriceCheckOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PriceCheckOperation priceCheckOperation = new PriceCheckOperation(priceCheckOperationLink, priceCheckOperationContext);
Response<RoomPriceCheck> response = rapidClient.execute(priceCheckOperation);
RoomPriceCheck roomPriceCheck = response.getData();2. 예약
예약 API를 사용하여 요금 확인 응답을 통해 확정된 요금으로 객실을 예약할 수 있습니다. Rapid Booking API에 대한 자세한 내용은 Booking API 문서를 참조하시기 바랍니다.
일정 생성
예약 API의 기본 일정 메서드는 선택한 숙박 시설, 객실, 요금, 투숙 인원에 대한 예약을 생성합니다. 청구/카드 소유자 연락처 정보를 포함한 결제 정보는 요청에 직접 제공됩니다. 자세한 내용은 예약 API 문서를 참조하십시오.
PostItineraryOperationLink postItineraryOperationLink = roomPriceCheck.getLinks().getBook(); // from the previous step
PostItineraryOperationContext postItineraryOperationContext = PostItineraryOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PostItineraryOperation itineraryCreationOperation = new PostItineraryOperation(postItineraryOperationLink, postItineraryOperationContext, createItineraryRequest(false));
Response<ItineraryCreation> response = rapidClient.execute(itineraryCreationOperation);
ItineraryCreation itineraryCreationResponse = response.getData();예약 보류 및 재개
Rapid의 보류 및 재개 기능은 2단계 예약 모델을 지원할 수 있습니다. 의 ‘일시 중지 및 재개’ 기능에 대한 자세한 내용은 에서 확인하세요.
1. 조회
예약 가능 여부 가져오기
GetAvailabilityOperationParams getAvailabilityOperationParams = GetAvailabilityOperationParams.builder()
.checkin("YYYY-MM-DD")
.checkout("YYYY-MM-DD")
.currency("USD")
.language("en_US")
.countryCode("US")
.occupancy(List.of("OCCUPANCY"))
.propertyId(List.of("PROPERTY ID"))
.customerIp("127.0.0.1")
.ratePlanCount(BigDecimal.ONE)
.salesChannel("SALES CHANNEL")
.salesEnvironment("SALES ENVIRONMENT")
.build();
GetAvailabilityOperation getAvailabilityOperation = new GetAvailabilityOperation(getAvailabilityOperationParams);
Response<List<Property>> propertiesResponse = rapidClient.execute(getAvailabilityOperation);객실 요금 확인
Property property = propertiesResponse.getData().get(0);
if (!(property instanceof PropertyAvailability)) {
return;
}
PropertyAvailability propertyAvailability = (PropertyAvailability) property;
PriceCheckOperationLink priceCheckOperationLink = propertyAvailability.getRooms().get(0).getRates().get(0).getBedGroups().entrySet().stream().findFirst().get().getValue().getLinks().getPriceCheck(); // selecting the first rate for the first room
PriceCheckOperationContext priceCheckOperationContext = PriceCheckOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PriceCheckOperation priceCheckOperation = new PriceCheckOperation(priceCheckOperationLink, priceCheckOperationContext);
Response<RoomPriceCheck> response = rapidClient.execute(priceCheckOperation);
RoomPriceCheck roomPriceCheck = response.getData();2. 예약
일정 생성
PostItineraryOperationLink postItineraryOperationLink = roomPriceCheck.getLinks().getBook(); // from the previous step
PostItineraryOperationContext postItineraryOperationContext = PostItineraryOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PostItineraryOperation itineraryCreationOperation = new PostItineraryOperation(postItineraryOperationLink, postItineraryOperationContext, createItineraryRequest(true));
Response<ItineraryCreation> response = rapidClient.execute(itineraryCreationOperation);
ItineraryCreation itineraryCreation = response.getData();보류 중인 예약 재개
PutResumeBookingOperationLink putResumeBookingOperationLink = itineraryCreation.getLinks().getResume(); // from the previous step
PutResumeBookingOperationContext putResumeBookingOperationContext = PutResumeBookingOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PutResumeBookingOperation itineraryResumeOperation = new PutResumeBookingOperation(putResumeBookingOperationLink, putResumeBookingOperationContext);
rapidClient.execute(itineraryResumeOperation);EEA 내 SCA 준수
이 SDK를 활용하면 유럽경제지역(EEA)의 강력한 고객 인증(SCA) 규정을 보다 수월하게 준수할 수 있습니다. 해당 규정에 따라 EEA 회원국에서 발급된 신용카드가 포함된 모든 거래에 대해 결제 페이지( check-out ) 및 예약 절차를 변경해야 합니다. 자세한 내용은 의 SCA 규정 관련 기사()를 참조해 주시기 바랍니다.
1. 조회
예약 가능 여부 가져오기
GetAvailabilityOperationParams getAvailabilityOperationParams = GetAvailabilityOperationParams.builder()
.checkin("YYYY-MM-DD")
.checkout("YYYY-MM-DD")
.currency("USD")
.language("en_US")
.countryCode("US")
.occupancy(List.of("OCCUPANCY"))
.propertyId(List.of("PROPERTY ID"))
.customerIp("127.0.0.1")
.ratePlanCount(BigDecimal.ONE)
.salesChannel("SALES CHANNEL")
.salesEnvironment("SALES ENVIRONMENT")
.build();
GetAvailabilityOperation getAvailabilityOperation = new GetAvailabilityOperation(getAvailabilityOperationParams);
Response<List<Property>> propertiesResponse = rapidClient.execute(getAvailabilityOperation);객실 요금 확인
Property property = propertiesResponse.getData().get(0);
if (!(property instanceof PropertyAvailability)) {
return;
}
PropertyAvailability propertyAvailability = (PropertyAvailability) property;
PriceCheckOperationLink priceCheckOperationLink = propertyAvailability.getRooms().get(0).getRates().get(0).getBedGroups().entrySet().stream().findFirst().get().getValue().getLinks().getPriceCheck(); // selecting the first rate for the first room
PriceCheckOperation priceCheckOperation = new PriceCheckOperation(priceCheckOperationLink);
Response<RoomPriceCheck> response = rapidClient.execute(priceCheckOperation);
RoomPriceCheck roomPriceCheck = response.getData();2. 예약
결제 세션 생성
PostPaymentSessionsOperationLink postPaymentSessionsOperationLink = roomPriceCheck.getLinks().getPaymentSession();
PostPaymentSessionsOperationContext postPaymentSessionsOperationContext = PostPaymentSessionsOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PostPaymentSessionsOperation paymentSessionsOperation = new PostPaymentSessionsOperation(postPaymentSessionsOperationLink, postPaymentSessionsOperationContext, createPaymentSessionRequest());
Response<PaymentSessions> paymentSessionsResponse = rapidClient.execute(paymentSessionsOperation);
PaymentSessions paymentSessions = paymentSessionsResponse.getData();JavaScript 챌린지 통과
2FA가 필요한 경우 응답에는 encodedChallengeConfig가 포함됩니다. 반환된 encodedChallengeConfig 및 paymentSessionId는 JavaScript 챌린지 메서드에 매개변수로 전달되어야 합니다.
일정 생성
PostItineraryOperationLink postItineraryOperationLink = roomPriceCheck.getLinks().getBook(); // from the first step
PostItineraryOperationContext postItineraryOperationContext = PostItineraryOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PostItineraryOperation itineraryCreationOperation = new PostItineraryOperation(postItineraryOperationLink, postItineraryOperationContext, createItineraryRequest(true));
Response<ItineraryCreation> response = rapidClient.execute(itineraryCreationOperation);
ItineraryCreation itineraryCreation = response.getData();결제 세션 완료
PutCompletePaymentSessionOperation putCompletePaymentSessionOperation = itineraryCreation.getLinks().getCompletePaymentSession();
PutCompletePaymentSessionOperationContext putCompletePaymentSessionOperationContext = PutCompletePaymentSessionOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PutCompletePaymentSessionOperation completePaymentSessionOperation = new PutCompletePaymentSessionOperation(putCompletePaymentSessionOperation, putCompletePaymentSessionOperationContext);
Response<CompletePaymentSession> completePaymentSessionResponse = rapidClient.execute(completePaymentSessionOperation);
CompletePaymentSession completePaymentSession = completePaymentSessionResponse.getData();보류 중인 예약 재개
PutResumeBookingOperationLink putResumeBookingOperationLink = itineraryCreation.getLinks().getResume();
PutResumeBookingOperationContext putResumeBookingOperationContext = PutResumeBookingOperationContext.builder().customerIp("1.2.3.4").customerSessionId("12345").build(); // fill the context as needed
PutResumeBookingOperation putResumeBookingOperation = new PutResumeBookingOperation(putResumeBookingOperationLink, putResumeBookingOperationContext);
rapidClient.execute(putResumeBookingOperation);더 많은 예시는 다음에서 확인하실 수 있습니다. GitHub 저장소.