顧客情報連動
コンティプルではなく、独自使用中の外部サービスの情報をAPI設定を通じてチケット管理で照会できる機能です。
➊ API認証方法
1-1. 暗号化鍵 (Security Key)
[顧客情報管理]→[顧客情報連動]→[API設定]でAPIを暗号化するかどうかをはいに設定します。
暗号化キーが自動生成され、そのキーをAPI認証に活用することができます。
1-2. Authorization 文字列の生成方法
次の 2 つの方法で文字列を生成できます。
HmacSHA256 で暗号化するか、(request URI + パラメータ値(json) + 現在のUTC 時間値)文字列に対して暗号化してAuthorization文字列を生成することができます。
Java 例題
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;
}
}
➋ 顧客情報連動API
(1) インターフェース説明
インターフェース名
プロトコル
呼び出し方向
エンコード
요청 파라미터 형식
URL
접근제한 여부
고객정보연동 API
HTTPS
POST
UTF-8
JSON
기본 URL
공통 인증
(2) リクエストパラメータ定義
명칭
변수
데이터 타입
필수
설명
설정한 조회 항목
callNum
String
O
nation
String
(3) Request Body
{
"callNum":"1",
"nation":"korea"
}
(4) 結果データ
명칭
변수
데이터 타입
필수
설명
설정한 결과 항목
userName
String
id
String
(5) Response Body
{
"data": {
"userName": "test",
"id": "testId"
}
}
➌ リターン結果
(1) パラメータ定義
명칭
변수
데이터 타입
필수
설명
성공 시 리턴 결과
data
JSON
O
OC에서의 결과 항목 설정값
String
O
명칭
변수
데이터 타입
필수
설명
실패 시 리턴 결과
error
JSON
O
code
String
O
message
String
O
detail
String
O
(2) HTTP 状態コード
리턴 코드 정보
Contiple 표시 메시지
200 : SUCCESS
조회 성공
400 : Bad Request
조회 결과가 없습니다.
403 : Forbidden
요청한 서버에 조회 권한이 없습니다.
404 : Not Data Found
요청한 서버에 에러가 있습니다.
500 : Server Error
오류가 발생하였습니다.
(3) リターン結果例
200 : OK
{
"data": {
"userNo": "0",
"userId": "string",
"gameCode": "string",
"cashReal": "0",
"cashBonus": "0",
"cashTotal": "0"
}
}
Failure case : HTTP Status Code != 200 AND error object
{
"error": {
"code": 911,
"message": "Not existing user.",
"detail": null
}
}
Last updated