Contiple 사용자 가이드
한국어
한국어
  • Contiple
    • 콘티플 홈페이지
  • 시작하기
    • 가입하기
    • 서비스 만들기
    • 상담원 추가하기
    • 티켓 상담하기
    • 전화 상담하기
    • 채팅 상담하기
  • 사용하기
    • 전체 관리
    • 상담 관리
      • 서비스 관리
      • 헬프센터
      • 티켓 관리
      • 채팅 기록
      • 고객 정보 관리
      • 부가 업무
      • 통계
      • 가이드
      • 만족도 관리
    • 이슈 관리
      • 서비스 관리
      • 티켓 관리
      • 통계
      • 부가 업무
      • 가이드
    • 내 계정
  • API 가이드
    • Open API
      • 서비스
      • 공지사항
      • FAQ
      • 문의 접수
      • 문의 내역
      • 회원 연동 (POST)
      • 회원 연동 (GET)
      • 고객 정보 연동
  • 개인정보처리방침
    • 2024년 11월 4일
  • 릴리스 노트
    • 2025년 6월 10일
    • 2025년 5월 13일
    • 2025년 4월 15일
    • 2025년 3월 11일
    • 2025년 2월 18일
    • 2025년 1월 14일
    • 2024년 12월 17일
    • 2024년 11월 26일
    • 2024년 11월 12일
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시간 값)문자열에 대해 암호화

  • 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 상태 코드

리턴 코드 정보
Online Contact 표시 메시지

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)Next2024년 11월 4일

Last updated 7 months ago