NaverClient
네이버 API를 호출하는 클라이언트. 네이버 프로모션 유효성 검증을 담당한다.
상속
ClientSupport 상속
설정
- endpoint:
infrastructureProperties.naver.apiEndpoint - timeout:
infrastructureProperties.naver.fuelTimeout - channels: 채널별 HMAC 설정
인증
| 항목 | 설명 |
|---|---|
| 인증 방식 | HMAC 서명 |
| hmacSecret | 채널별 시크릿 |
| consumerId | 채널별 소비자 ID |
메서드
validatePromotion
fun validatePromotion(
naverPromotion: NaverPromotion,
flightDetails: List<FlightDetail>,
adult: Int,
child: Int,
infant: Int,
)네이버 프로모션 유효성을 검증한다. POST /{consumerId}/flight-partner/international-promotion-validation
| Caller | Callee |
|---|---|
| FlightDetailService.getFlightDetails | Naver API |
HMAC 서명:
val url = HmacUtil.makeEncryptUrl(mac, endpoint)검증 실패 시 예외:
| validationCode | 예외 |
|---|---|
| 100, 110, 200 | INVALID_NAVER_PROMOTION_STATUS |
| 기타 | INVALID_NAVER_PROMOTION |
NaverPromotionValidationRequest
| 필드 | 설명 |
|---|---|
promotionCode | 프로모션 코드 |
flightDetails | 항공편 상세 목록 |
passengerCount | 승객 수 |
NaverPromotionValidationResponse
| 필드 | 설명 |
|---|---|
valid | 유효 여부 |
validationCode | 검증 코드 |
validationMessage | 검증 메시지 |
채널별 설정
propertiesByChannel = channels
.filter { it.hmacSecret != null && it.consumerId != null }
.associateBy { it.channel }특징
- HMAC 인증: 네이버 API 보안을 위한 HMAC 서명
- 채널별 설정: 채널(TRIPLE, INTERPARK 등)별 다른 인증 정보
- 로깅:
.log(true)로 요청/응답 로깅