Contiple 사용자 가이드
日本語
日本語
  • Contiple
    • Contiple Website
  • 始めること
    • 加入する
    • サービス作り
    • オペレータを追加する
    • チケット相談
    • 電話相談
    • チャット相談
  • 使用する
    • 全体管理
    • お問合わせ管理
      • サービス管理
      • ヘルプセンター
      • チケット管理
      • チャット履歴
      • 顧客情報管理
      • 付加業務
      • 統計
      • ガイド
      • 満足度管理
    • イシュー管理
      • サービス管理
      • チケット管理
      • 付加業務
      • 統計
      • ガイド
    • 私のアカウントです
  • API ガイド
    • Open API
      • サービス
      • お知らせ
      • FAQ
      • お問合せ
      • お問合せ履歴
      • 会員認証 (POST)
      • 会員認証 (GET)
      • 顧客情報連動
Powered by GitBook
On this page
  • ➊ API認証方法
  • 1-1. 暗号化鍵 (Security Key)
  • 1-2. Authorization 文字列の生成方法
  • ➋ 顧客情報連動API
  • ➌ リターン結果
  1. API ガイド
  2. Open API

顧客情報連動

コンティプルではなく、独自使用中の外部サービスの情報を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
  }
}
Previous会員認証 (GET)

Last updated 6 months ago