연동매뉴얼

Java API

(Spring / SpringBoot / JSP)

kakaoCert SpringBoot 튜토리얼

Java - SpringBoot 개발환경에서 kakaoCert Java SDK를 추가하여 본인인증 요청 기능을 구현하는 예시입니다.

1. Gradle을 이용한 kakaocert SpringBoot Starter 추가JDK v1.8SpringBoot v2.6.0

① kakaocert SpringBoot Starter 추가를 위해 SpringBoot 프로젝트 "build.gradle" 파일에 dependency 정보를 추가 후 Refresh 합니다.

※ kakaocert SpringBoot Starter는 SpringBoot v1.0 이상에서 사용 가능하며 kakaocert Java SDK AutoConfiguration을 지원합니다.

dependencies {
    implementation 'kr.co.linkhub:kakaocert-spring-boot-starter:1.0.0'
}

② SDK 설정을 위해 아래의 코드를 appllication.yml 파일에 추가합니다.

kakaocert:
  #링크허브에서 발급받은 파트너 링크아이디.
  linkId: TESTER
  #링크허브에서 발급받는 비밀키.
  secretKey: SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=
  #이용기관코드, 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
  clientCode: '020040000001'
  #인증토큰 발급 IP 제한 On/Off, ture-제한기능 사용(기본값-권장),  false-제한기능 미사용
  isIpRestrictOnOff: true
  #카카오써트 API 서비스 고정 IP 사용여부, true-사용, false-미사용, 기본값(false)
  useStaticIp: false

2. 본인인증 요청 기능 구현

① 서비스 클래스 빈 객체 추가를 위해 @Autowired 어노테이션과 RequestVeriftAuth 함수 코드를 추가합니다.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.kakaocert.api.KakaocertException;
import com.kakaocert.api.KakaocertService;
import com.kakaocert.api.verifyauth.RequestVerifyAuth;

@Controller
public class KakaocertController {
  @Autowired
  private KakaocertService kakaocertService;
  
  // 이용기관코드
  // 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
  @Value("${kakaocert.clientCode}")
  private String ClientCode;
  
  @RequestMapping(value = "/RequestVerifyAuth", method = RequestMethod.GET)
  public String RequestVerifyAuth(Model m) {
    try {
      // 본인인증 요청 정보 Object
      RequestVerifyAuth request = new RequestVerifyAuth();
      
      // 고객센터 전화번호  , 카카오톡 인증메시지 중 "고객센터" 항목에 표시
      request.setCallCenterNum("1600-9999");
      
      // 고객센터명  , 카카오톡 인증메시지 중 "고객센터명" 항목에 표시
      request.setCallCenterName("고객센터명");
      
      // 인증요청 만료시간(초), 최대값 : 1000  인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
      request.setExpires_in(300);
      
      // 수신자 생년월일, 형식 : YYYYMMDD
      request.setReceiverBirthDay("19700101");
      
      // 수신자 휴대폰번호  
      request.setReceiverHP("01012345117");
      
      // 수신자 성명 
      request.setReceiverName("테스트");
      
      // 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
      request.setTMSMessage("부가메시지 내용");
      
      // 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
      // 카카오톡 인증메시지 중 "요청기관" 항목에 표시
      // 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
      request.setSubClientID("");
      
      // 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
      request.setTMSTitle("TMS Title");
      
      // 원문, 보안을 위해 1회용으로 생성
      // 인증완료시, getVerifyAuthResult API의 returnToken 항목값으로 반환
      request.setToken("20200504-01");
    
      /*
      * 인증서 발급유형 선택
      *   true : 휴대폰 본인인증만을 이용해 인증서 발급
      *   false : 본인계좌 점유 인증을 이용해 인증서 발급
      * 
      * - 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우,
      *   카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차이후 전자서명 가능
      */
      request.setAllowSimpleRegistYN(false);
    
      /*
      * 수신자 실명확인 여부  
      * true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
      * false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음. 
      */
      request.setVerifyNameYN(true);
    
      // PayLoad, 이용기관이 API 요청마다 생성한 payload(메모) 값
      request.setPayLoad("memo Info");
      String receiptID = kakaocertService.requestVerifyAuth(ClientCode, request);
      m.addAttribute("receiptID", receiptID);
    } catch(KakaocertException ke) {
      m.addAttribute("Exception", ke);
      return "exception";
    }
    return "RequestVerifyAuth";
  }
}

② 함수 호출결과 코드와 메시지를 매핑하는 "src/main/resources/templates/RequestVerifyAuth.html" 페이지를 추가합니다.

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" type="text/css" href="/css/main.css" media="screen"/>
    <title>kakaocert SDK Springboot Example.</title>
</head>
<body>
<div id="content">
    <p class="heading1">State</p>
    <br/>
    <fieldset class="fieldset1">
        <legend th:text="${#request?.requestURL}"></legend>
        <ul>
            <li>receiptId (접수아이디) : <span th:text="${receiptId}"></span></li>
        </ul>
    </fieldset>
</div>
</body>

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

requestVerifyAuth 응답 결과 예시 화면

기술지원센터

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