연동매뉴얼

Java API

(Spring / JSP)

kakaoCert JSP 튜토리얼

Java - JSP 개발환경에서 kakaoCert Java SDK를 추가하여 자동이체 출금동의 요청 기능을 구현하는 예시입니다.

1. kakaoCert SDK 추가JDK v1.6Tomcat v9.0Eclipse 4.13.0

① 연동자료실에서 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"/>

2. 자동이체 출금동의 요청 기능 구현

① 프로젝트에 "RequestCMS.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.cms.RequestCMS"%>
<%@page import="com.kakaocert.api.KakaocertException"%>

<%
  /*
   * 카카오톡 사용자에게 자동이체 출금동의를 요청합니다.
   */
  // 이용기관코드, 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
  String ClientCode = "020040000001";
  
  // 자동이체 출금동의 요청 정보 Object
  RequestCMS cmsRequest = new RequestCMS();
  
  // 고객센터 전화번호, 카카오톡 인증메시지 중 "고객센터" 항목에 표시
  cmsRequest.setCallCenterNum("1600-9999");
  
  // 인증요청 만료시간(초), 최대값 : 1000  인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
  cmsRequest.setExpires_in(300);
  
  // 수신자 생년월일, 형식 : YYYYMMDD
  cmsRequest.setReceiverBirthDay("19700101");
  
  // 수신자 휴대폰번호
  cmsRequest.setReceiverHP("01012345117");
  
  // 수신자 성명
  cmsRequest.setReceiverName("테스트");
  
  // 예금주명
  cmsRequest.setBankAccountName("예금주명");
  
  // 계좌번호, 이용기관은 사용자가 식별가능한 범위내에서 계좌번호의 일부를 마스킹 처리할 수 있음 예시) 371-02-6***85
  cmsRequest.setBankAccountNum("9-4**4-1234-58");
  
  // 참가기관 코드
  cmsRequest.setBankCode("004");
  
  // 납부자 식별번호, 이용기관에서 부여한 고객식별번호
  cmsRequest.setClientUserID("20200504-001");
  
  // 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
  cmsRequest.setTMSMessage("부가메시지 내용");
  
  // 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
  // 카카오톡 인증메시지 중 "요청기관" 항목에 표시
  // 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
  cmsRequest.setSubClientID("");
  
  // 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
  cmsRequest.setTMSTitle("TMS Title");
  
  /*
  * 인증서 발급유형 선택
  * true : 휴대폰 본인인증만을 이용해 인증서 발급
  * false : 본인계좌 점유 인증을 이용해 인증서 발급
  *
  * - 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우,
  *   카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차이후 전자서명 가능
  */
  cmsRequest.setAllowSimpleRegistYN(false);
  
  /*
  * 수신자 실명확인 여부
  * true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
  * false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
  */
  cmsRequest.setVerifyNameYN(true);
  
  // PayLoad, 이용기관이 API 요청마다 생성한 payload(메모) 값
  cmsRequest.setPayLoad("memo Info");
  
  // 접수아이디 - 자동이체 출금동의 요청시 반환 받는 값
  String receiptID = null;
  
  try {
    receiptID = kakaocertService.requestCMS(ClientCode, cmsRequest);
  } catch(KakaocertException ke) {
    System.out.println(ke.getCode());
    System.out.println(ke.getMessage());
    throw ke;
  }
%>
  <body>
    <div>
      <p>Response</p>
      <fieldset>
        <legend>자동이체 출금동의 요청</legend>
        <ul>
          <li>접수아이디 : <%=receiptID%></li>
        </ul>
      </fieldset>
     </div>
  </body>
</html>

② 웹브라우저 페이지를 호출하여 함수호출 결과를 확인합니다.

requestESign 응답 결과 예시 화면

기술지원센터

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