Java - JSP 개발환경에서 kakaoCert Java SDK를 추가하여 전자서명 요청(Talk Message 방식) 기능을 구현하는 예시입니다.
① 연동자료실에서 JSP 예제 다운 받아 kakaocert.example.jsp.zip 다운받고 압축을 해제합니다. 다운 받은 JSP 예제에서 /WEB-INF/lib 폴더 하위에 있는 jar 파일 3개를 복사합니다. [참고] 연동자료실
/kakaocert.example.jsp/WEB-INF/lib/gson-version.jarjavaObject ↔ JSON 변환 구글 라이브러리
/kakaocert.example.jsp/WEB-INF/lib/linkhub-auth-version.jar링크허브 인증 라이브러리
/kakaocert.example.jsp/WEB-INF/lib/kakaocert-sdk-version.jarkakaoCert API 및 통신 기능 라이브러리
② 구현할 프로젝트의 라이브러리 폴더에 복사한 3개의 jar 파일을 추가합니다.
③ 프로젝트에 kakaoCert 서비스 연동환경 설정을 위한 "common.jsp" 파일을 생성 및 추가합니다. 아래의 코드를 참고하여 연동신청하여 발급 받은 링크아이디(LinkID)와 비밀키(SecretKey)를 수정합니다.
<%-- kakaoCert 클래스 빈 생성 --%>
<jsp:useBean id="kakaocertService" scope="application" class="com.kakaocert.api.KakaocertServiceImp"/>
<%-- 링크아이디(LinkID) - 연동신청시 발급받은 정보로 수정 --%>
<jsp:setProperty name="kakaocertService" property="linkID" value="TESTER"/>
<%-- 비밀키(SecretKey) - 연동신청시 발급받은 정보로 수정, 사용자 인증에 사용되는 정보이므로 유출에 주의 --%>
<jsp:setProperty name="kakaocertService" property="secretKey" value="SwWxqU+0TExEXy/9TVjKPExI2VTUMMSLZtJf3Ed8q3I="/>
<%-- 인증토큰 발급 IP 제한 On/Off, ture-제한기능 사용(기본값-권장), false-제한기능 미사용 --%>
<jsp:setProperty name="kakaocertService" property="IPRestrictOnOff" value="true"/>
<%-- 카카오써트 API 서비스 고정 IP 사용여부, true-사용, false-미사용, 기본값(false) --%>
<jsp:setProperty name="kakaocertService" property="useStaticIP" value="false"/>
<%-- 로컬시스템 시간 사용여부 true-사용, false-미사용, 기본값(true) --%>
<jsp:setProperty name="kakaocertService" property="useLocalTimeYN" value="true"/>
① 프로젝트에 "RequestESign.jsp" 파일을 생성하고, 아래의 코드를 참조하여 함수 호출 코드를 추가합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kakaocert SDK jsp Example.</title>
</head>
<%@ include file="common.jsp" %>
<%@page import="com.kakaocert.api.esign.RequestESign"%>
<%@page import="com.kakaocert.api.ResponseESign"%>
<%@page import="com.kakaocert.api.KakaocertException"%>
<%
/*
* 카카오톡 사용자에게 전자서명을 요청합니다.
*/
// 이용기관코드, 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
String ClientCode = "020040000001";
// App to App 방식 이용 여부 : true-App To App 방식, false-Talk Message 방식
boolean appUseYN = false;
// 전자서명 요청 정보 Object
RequestESign eSignRequest = new RequestESign();
// 고객센터 전화번호, 카카오톡 인증메시지 중 "고객센터" 항목에 표시
eSignRequest.setCallCenterNum("1600-9999");
// 고객센터명 , 카카오톡 인증메시지 중 "고객센터명" 항목에 표시
request.setCallCenterName("고객센터명");
// 인증요청 만료시간(초), 최대값 : 1000 인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
eSignRequest.setExpires_in(300);
// 수신자 생년월일, 형식 : YYYYMMDD
eSignRequest.setReceiverBirthDay("19700101");
// 수신자 휴대폰번호
eSignRequest.setReceiverHP("01012345117");
// 수신자 성명
eSignRequest.setReceiverName("테스트");
// 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
eSignRequest.setTMSMessage("부가메시지 내용");
// 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
// 카카오톡 인증메시지 중 "요청기관" 항목에 표시
// 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
eSignRequest.setSubClientID("");
// 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
eSignRequest.setTMSTitle("TMS Title");
// Token 원문
eSignRequest.setToken("token value");
/*
* 인증서 발급유형 선택
* true : 휴대폰 본인인증만을 이용해 인증서 발급
* false : 본인계좌 점유 인증을 이용해 인증서 발급
*
* - 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우,
* 카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차이후 전자서명 가능
*/
eSignRequest.setAllowSimpleRegistYN(false);
/*
* 수신자 실명확인 여부
* true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
* false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
*/
eSignRequest.setVerifyNameYN(true);
// PayLoad, 이용기관이 API 요청마다 생성한 payload(메모) 값
eSignRequest.setPayLoad("memo Info");
// 접수아이디 - 전자서명 요청시 반환 받는 값
ResponseESign result = null;
try {
result = kakaocertService.requestESign(ClientCode, eSignRequest, appUseYN);
} catch(KakaocertException ke) {
throw ke;
}
%>
<body>
<div>
<p>Response</p>
<fieldset>
<legend>전자서명 요청</legend>
<ul>
<li>접수아이디 : <%=result.getReceiptId()%></li>
<li>카카오톡 트랜잭션아이디 (tx_id)[AppToApp 앱스킴 호출용] : <%=result.getTx_id()%></li>
</ul>
</fieldset>
</div>
</body>
</html>
② 웹브라우저 페이지를 호출하여 함수호출 결과를 확인합니다.
기술지원센터
kakaoCert 기술지원은 유선, 메일, 원격지원 등 다양한 채널을 통해 제공됩니다.
T. 1600-9854E. code@linkhubcorp.com
Copyright (C) LinkHub. All Rights Reserved.