이 문서는 REST API인 카카오 T 퀵/도보배송 API(이하 퀵/도보배송 API)를 사용하여 카카오모빌리티가 제공하는 퀵 배송, 도보 배송 등의 서비스를 이용하는 방법을 안내합니다.

퀵/도보배송 API는 각 서비스마다 제공하던 여러 개의 API를 하나로 통합하여 제공하므로, 한 번의 연동으로 빠르고 간편하게 카카오모빌리티의 서비스를 사용할 수 있습니다. 퀵/도보배송 API를 통해 출발지와 목적지의 위치, 주문 유형 등과 같은 상세 정보를 확인하고 주문을 취소할 수 있습니다. 또한, 주문 상태 및 배송원의 현재 위치를 조회할 수 있습니다.

시작하기 전에

Vendor ID 및 API 키 발급받기

<aside> 💡 퀵/도보배송 API를 사용하려면 Vendor ID와 API 키를 발급받아야 합니다. 발급에 관한 상세 정보는 [email protected]으로 문의해 주세요.

</aside>

Signkey 값 및 Authorization 파라미터값 생성하기

REST API를 호출하려면 요청 헤더의 Authorization 파라미터값이 필요합니다. 이를 생성하려면 먼저 Signkey 값을 생성해야 합니다.

1. Signkey 값 생성하기

아래 단계를 따라 Signkey 값을 만들 수 있습니다.

  1. 타임스탬프(timestamp), 논스 값(nonce), 발급받은 API 키값을 차례대로 붙인 문자열을 만듭니다.
  2. 위의 단계에서 조합한 문자열을 HMAC-SHA512로 서명하여 Signkey 값을 생성합니다.

표 1 | Signkey 생성 정보

Value Type Description
timestamp Long 요청이 생성된 시각으로 밀리 초 단위로 시간을 표기
nonce Integer 사용자가 임의로 지정한 숫자
apiKey String 발급받은 API 키
  final String timestamp = String.valueOf(System.currentTimeMillis());
  final String nonce = "121212";
  final String apiKey = "f9ecb7d7-f5e5-40e1-bc9b-6b5e4ed6cfe0";
  final String sign = signature(timestamp, nonce, apiKey);

  static String signature(final String timestamp, final String nonce, final String apiKey)
      throws InvalidKeyException, NoSuchAlgorithmException {
    final String plainText = timestamp + nonce + apiKey;
    return HmacSignature.signatureSHA512(plainText);
  }

  static String signatureSHA512(final String plainText)
      throws NoSuchAlgorithmException, InvalidKeyException {

    final MessageDigest md = MessageDigest.getInstance("SHA-512");
    md.update(plainText.getBytes());
    return String.format("%0128x", new BigInteger(1, md.digest()));
  }

2. Authorization 파라미터값 생성하기

Authorization 파라미터값은 위에서 생성된 Signkey 값, 타임스탬프(timestamp), 논스 값(nonce)의 조합을 Base64로 인코딩하여 생성합니다. 조합 시 구분자는 $$를 사용합니다.

표 2 | Authorization 파라미터값 생성 정보

Value Type Description
timestamp Long 요청이 생성된 시각으로 밀리 초 단위로 시간을 표기
nonce Integer 사용자가 임의로 지정한 숫자
sign String Signkey 값