Customer Information Integration
➊ API Authentication Method
1-1. Security Key
1-2. Authorization String Generation
① HmacSHA256로 암호화
② (request URI + 파라미터 값(json) + 현재 UTC시간 값)문자열에 대해 암호화
String token= request.getHeader("Authorization");
String time = request.getHeader("X-TC-Timestamp");
if (!StringUtils.isNumeric(time)) {
logger.error("X-TC-Timestamp is not numeric: " + time);
throw new Exception("error.bad_request");
}
DateTime date = null;
date = new DateTime(Long.parseLong(time));
if (date.minusMinutes(5).isAfterNow() || date.plusMinutes(5).isBeforeNow()) {
logger.error("X-TC-Timestamp is expired: " + time + ", now timestamp: " + Calendar.getInstance().getTimeInMillis());
throw new Exception("error.bad_request");
}
String apiKey = "bf7769e5321448de88838cdb";
String content= new String(IOUtils.toByteArray(request.getInputStream()), StandardCharsets.UTF_8) + time;
SecretKeySpec signingKey = new SecretKeySpec(apiKey.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
Mac mac = Mac.getInstance(signingKey.getAlgorithm());
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(content.getBytes(StandardCharsets.UTF_8));
String localAuthorization = new String(Base64.encodeBase64(rawHmac));
logger.debug("Local token: " + localAuthorization);
if (StringUtils.equals(token, localAuthorization)) {
return true;
} else {
logger.info("Local sha2 token: " + localAuthorization);
return false;
}
}➋ Customer Information Integration API
(1) Interface Description
Interface Name
Protocol
Request Format
Encoding
Response Format
URL
Access Required
(2) Request parameter
Name
Field (Parameter)
Type
Required
Description
(3) Request body
(4) Response data
Name
Field (Parameter)
Type
Required
Description
(5) Response Body
➌ Return Result
(1) Parameter Definition
Name
Field (Parameter)
Type
Required
Description
Name
Field (Parameter)
Type
Required
Description
(2) HTTP Status code
Return Code
Contiple(OC) Message
(3) Response Example
Last updated