顧客情報連動

コンティプルではなく、独自使用中の外部サービスの情報を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