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

HMAC 서명:

val url = HmacUtil.makeEncryptUrl(mac, endpoint)

검증 실패 시 예외:

validationCode예외
100, 110, 200INVALID_NAVER_PROMOTION_STATUS
기타INVALID_NAVER_PROMOTION
필드설명
promotionCode프로모션 코드
flightDetails항공편 상세 목록
passengerCount승객 수
필드설명
valid유효 여부
validationCode검증 코드
validationMessage검증 메시지

채널별 설정

propertiesByChannel = channels
    .filter { it.hmacSecret != null && it.consumerId != null }
    .associateBy { it.channel }

특징

  • HMAC 인증: 네이버 API 보안을 위한 HMAC 서명
  • 채널별 설정: 채널(TRIPLE, INTERPARK 등)별 다른 인증 정보
  • 로깅: .log(true)로 요청/응답 로깅