연동매뉴얼

Java API

(Spring / JSP)

프로세스 흐름도

Talk Message 방식

이용기관 서버에서 kakaoCert로 인증요청 함수를 호출하면 이용자의 카카오톡으로 인증 메시지를 전송하여 확인 후 인증을 진행하는 방식입니다.

이용자
이용기관 서비스 카카오톡 App 이용기관 서버 kakaoCert
전자서명 인증요청 인증요청 함수 호출 접수아이디 반환
서명 프로세스 카카오톡 인증 메시지 전송 서명 원문 검증
및 암호화
Loop
[state == 0]
상태 확인 함수 호출 상태값 반환
[state == 1] 서명 검증 함수 호출 서명 검증값 반환
서명 완료

* 이용기관에서 호출해야하는 kakaoCert APIN으로 표시 하였습니다.

1 전자서명 요청(RequestESign) 함수 호출

: 카카오톡 이용자의 수신정보(성명, 생년월일, 휴대폰번호)와 전자서명할 데이터 원문을 작성하여 전자서명을 요청합니다.

2 서명 상태 확인(GetESignState) 함수 호출

: 서명 프로세스 종료시점(요청시간+만료시간) 또는 전자서명 요청 함수 호출 후 3~5초 간격으로 서명 상태 확인 함수를 호출하여 서명 상태(state)가 서명 완료(1)인지를 확인합니다.

3 서명 검증(VerifyESign) 함수 호출 - 최초 1회만 signedData 반환 가능

: 서명 상태(state)가 서명 완료(1)로 확인된 인증의 서명값을 검증합니다.

App to App 방식

이용기관 App에서 카카오톡 App 인증 *앱스킴을 호출해 카카오톡 App을 즉시 실행하여 이용자의 인증 메시지 확인 없이 인증을 진행하는 방식입니다.

* 모바일 애플리케이션 및 브라우저에서 카카오톡 혹은 이용기관 앱을 실행시키는 앱스킴을 의미합니다.

이용자
이용기관 App 카카오톡 App 이용기관 서버 kakaoCert
전자서명 인증요청 인증요청 함수 호출 접수아이디, tx_id 반환 접수아이디, tx_id
서명 프로세스 앱스킴 호출(tx_id) tx_id 검증
서명 원문 암호화
앱스킴 호출(서명값)
서명 검증 요청(접수아이디, 서명값)
Loop
[state == 0]
상태 확인 함수 호출 상태값 반환
[state == 1] 서명 검증 함수 호출 서명 검증값 반환
서명 완료

* 이용기관에서 호출해야하는 kakaoCert APIN으로 표시 하였습니다.

* 이용기관에서 호출해야하는 카카오톡 AppN으로 표시 하였습니다.

1 전자서명 요청(RequestESign) 함수 호출

: 카카오톡 이용자의 수신정보(성명, 생년월일, 휴대폰번호)와 전자서명할 데이터 원문을 작성하여 전자서명을 요청합니다.

2 서명 상태 확인(GetESignState) 함수 호출

: 서명 프로세스 종료시점(요청시간+만료시간) 또는 전자서명 요청 함수 호출 후 3~5초 간격으로 서명 상태 확인 함수를 호출하여 서명 상태(state)가 서명 완료(1)인지를 확인합니다.

3 서명 검증(VerifyESign) 함수 호출 - 최초 1회만 signedData 반환 가능

: 서명 상태(state)가 서명 완료(1)로 확인된 인증의 서명값을 검증합니다.

1 앱스킴 호출

: 서명을 진행하기 위하여 이용기관은 이용기관 App에서 카카오톡 App 인증 앱스킴을 호출해야 합니다.

kakaotalk://kakaopay/cert/sign?tx_id={tx_id}&success={appscheme1}&fail={appscheme2}

Parameter

Name Type Description
tx_id String 카카오톡 App 인증 앱스킴을 호출하기 위한 카카오톡 트랜잭션아이디
success String 서명 성공 후 카카오톡에서 호출할 이용기관 앱의 앱스킴을 URL 인코딩한 값
fail String 서명 실패 후 카카오톡에서 호출할 이용기관 앱의 앱스킴을 URL 인코딩한 값

ExampleiOSAndroid

서명 성공(success) 호출해야 하는 이용기관 앱스킴 : paytest://cert/success

서명 실패(fail) 호출해야 하는 이용기관 앱스킴 : paytest://cert/fail

tx_id : d3c57x08c2c97590ay23d6f6940e7815

kakaotalk://kakaopay/cert/sign?tx_id=d3c57x08c2c97590ay23d6f6940e7815&success=paytest%3A%2F%2Fcert%2Fsuccess&fail=paytest%3A%2F%2Fcert%2Ffail

1.1 앱스킴 응답

: 이용자가 카카오톡 App에서 서명을 완료한 후 카카오톡 App은 이용기관에서 호출한 앱스킴에 따라 성공에는 sussess 앱스킴, 실패에는 fail 앱스킴이 호출됩니다.

Parameter

Name Description Remark
tx_id 카카오톡 트랜잭션아이디 필수
sig * 서명값(signature) 성공하는 경우 전달(iOS)
signature * 서명값(signature) 성공하는 경우 전달(Android)
code 에러 코드 실패하는 경우 전달(iOS 성공하는 경우에도 값 : 0 리턴)
* 서명에 성공한 이용기관은 이용기관 App으로 서명값(signature)를 전달 받아 kakaoCert 결과확인(GetESignResult) 함수를 호출하여 서명데이터를 반환 받고 인증을 완료합니다.

ExampleiOS

서명 성공(success) 앱스킴 : paytest://cert/success

tx_id : d3c57x08c2c97590ay23d6f6940e7815

서명값 : abcdefg

paytest://cert/success?tx_id=d3c57x08c2c97590ay23d6f6940e7815&sig=abcdefg

서명 실패(fail) 앱스킴 : paytest://cert/fail

tx_id : d3c57x08c2c97590ay23d6f6940e7815

code : 1001

└ iOS는 각 에러에 대한 대응 및 Alert를 카카오톡 App에서 자체 처리하므로 항상 1001 오류코드를 받습니다. (이용기관 별도 처리X)

paytest://cert/fail?tx_id=d3c57x08c2c97590ay23d6f6940e7815&code=1001

ExampleAndroid

서명 성공(success) 앱스킴 : paytest://cert/success

tx_id : d3c57x08c2c97590ay23d6f6940e7815

paytest://cert/success?tx_id=d3c57x08c2c97590ay23d6f6940e7815&signature=abcdefg

서명 실패(fail) 앱스킴 : paytest://cert/fail

tx_id : d3c57x08c2c97590ay23d6f6940e7815

code : 1000 (하단 에러코드 참고)

paytest://cert/fail?tx_id=d3c57x08c2c97590ay23d6f6940e7815&code=1000

에러코드Android

Code Description
1000 약관에 동의하지 않음
1001 휴대폰 본인인증 중 이용자가 취소함
1002 계좌점유 확인 중 이용자가 취소함
1003 카카오머니 비밀번호 확인 중 이용자가 취소함
1004 인증 비밀번호 등록 중 이용자가 취소함
2000 이용자 상태 체크 실패
2001 CI중복 상태
3000 인증서 발급 요청 실패
3001 이용기관 등록 실패
4000 서명 요청 실패
4001 서명 요청 유효성 검증 실패
4002 인증서 상태가 유효하지 않음
4003 서명 데이터 요청 실패
4004 서명 원문 확인시 이용자가 취소함
4005 브릿지 화면에서 이용자가 취소함
4006 인증 비밀번호를 5회 잘못 입력함
4007 개인키 로드 실패
4008 인증 비밀번호 화면에서 이용자가 취소함
4009 서명 확인 실패
5000 강제 종료

기술지원센터

kakaoCert 기술지원은 유선, 메일, 원격지원 등 다양한 채널을 통해 제공됩니다.
T. 1600-9854E. code@linkhub.co.kr