이 문서는 REST API인 카카오 T 퀵/도보배송 API(이하 퀵/도보배송 API)를 사용하여 카카오모빌리티가 제공하는 퀵 배송, 도보 배송 등의 서비스를 이용하는 방법을 안내합니다.
퀵/도보배송 API는 각 서비스마다 제공하던 여러 개의 API를 하나로 통합하여 제공하므로, 한 번의 연동으로 빠르고 간편하게 카카오모빌리티의 서비스를 사용할 수 있습니다. 퀵/도보배송 API를 통해 출발지와 목적지의 위치, 주문 유형 등과 같은 상세 정보를 확인하고 주문을 취소할 수 있습니다. 또한, 주문 상태 및 배송원의 현재 위치를 조회할 수 있습니다.
<aside> 💡 퀵/도보배송 API를 사용하려면 Vendor ID와 API 키를 발급받아야 합니다. 발급에 관한 상세 정보는 [email protected]으로 문의해 주세요.
</aside>
REST API를 호출하려면 요청 헤더의 Authorization 파라미터값이 필요합니다. 이를 생성하려면 먼저 Signkey 값을 생성해야 합니다.
아래 단계를 따라 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()));
}
Authorization 파라미터값은 위에서 생성된 Signkey 값, 타임스탬프(timestamp), 논스 값(nonce)의 조합을 Base64로 인코딩하여 생성합니다. 조합 시 구분자는 $$
를 사용합니다.
표 2 | Authorization 파라미터값 생성 정보
Value | Type | Description |
---|---|---|
timestamp | Long |
요청이 생성된 시각으로 밀리 초 단위로 시간을 표기 |
nonce | Integer |
사용자가 임의로 지정한 숫자 |
sign | String |
Signkey 값 |