Java - SpringBoot 개발환경에서 kakaoCert Java SDK를 추가하여 자동이체 출금동의 요청 기능을 구현하는 예시입니다.
① 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.2.0'
}
② SDK 설정을 위해 아래의 코드를 appllication.yml 파일에 추가합니다.
kakaocert:
#링크허브에서 발급받은 파트너 링크아이디.
linkId: TESTER
#링크허브에서 발급받는 비밀키.
secretKey: SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=
#이용기관코드, 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
clientCode: '020040000001'
#인증토큰 발급 IP 제한 On/Off, true-사용, false-미사용, 기본값(true)
isIpRestrictOnOff: true
#카카오써트 API 서비스 고정 IP 사용여부, true-사용, false-미사용, 기본값(false)
useStaticIp: false
#로컬시스템 시간 사용여부 true-사용, false-미사용, 기본값(true)
useLocalTimeYN: true
① 서비스 클래스 빈 객체 추가를 위해 @Autowired 어노테이션과 RequestCMS 함수 코드를 추가합니다.
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.cms.RequestCMS;
import com.kakaocert.api.cms.RequestCMS;
@Controller
public class KakaocertController {
@Autowired
private KakaocertService kakaocertService;
// 이용기관코드
// 파트너가 등록한 이용기관의 코드, (파트너 사이트에서 확인가능)
@Value("${kakaocert.clientCode}")
private String ClientCode;
@RequestMapping(value = "/RequestCMS", method = RequestMethod.GET)
public String RequestCMS(Model m) {
try {
// AppToApp 인증요청 여부
// true - AppToApp 인증방식, false - Talk Message 인증방식
boolean isAppUseYN = false;
// 자동이체 출금동의 요청 정보 Object
RequestCMS request = new RequestCMS();
// 고객센터 전화번호 , 카카오톡 인증메시지 중 "고객센터" 항목에 표시
request.setCallCenterNum("1600-9999");
// 고객센터명 , 카카오톡 인증메시지 중 "고객센터명" 항목에 표시
request.setCallCenterName("고객센터명");
// 인증요청 만료시간(초), 최대값 : 1000 인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
request.setExpires_in(300);
// 수신자 생년월일, 형식 : YYYYMMDD
request.setReceiverBirthDay("19700101");
// 수신자 휴대폰번호
request.setReceiverHP("01012345117");
// 수신자 성명
request.setReceiverName("테스트");
// 예금주명
request.setBankAccountName("예금주명");
// 계좌번호, 이용기관은 사용자가 식별가능한 범위내에서 계좌번호의 일부를 마스킹 처리할 수 있음 예시) 371-02-6***85
request.setBankAccountNum("9-4**4-1234-58");
// 참가기관 코드
request.setBankCode("004");
// 납부자 식별번호, 이용기관에서 부여한 고객식별번호
request.setClientUserID("20200504-001");
// 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
// 카카오톡 인증메시지 중 "요청기관" 항목에 표시
// 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
request.setSubClientID("");
// 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
request.setTMSTitle("TMS Title");
// 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
request.setTMSMessage("부가메시지 내용");
/*
* 인증서 발급유형 선택
* true : 휴대폰 본인인증만을 이용해 인증서 발급
* false : 본인계좌 점유 인증을 이용해 인증서 발급
*
* - 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우,
* 카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차이후 전자서명 가능
*/
request.setAllowSimpleRegistYN(false);
/*
* 수신자 실명확인 여부
* true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
* false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
*/
request.setVerifyNameYN(true);
// PayLoad, 이용기관이 API 요청마다 생성한 payload(메모) 값
request.setPayLoad("memo Info");
ResponseCMS receiptID = kakaocertService.requestCMS(ClientCode, request, isAppUseYN);
m.addAttribute("receiptId", requestCMS.getReceiptId());
m.addAttribute("tx_id", requestCMS.getTx_id());
} catch(KakaocertException ke) {
m.addAttribute("Exception", ke);
return "exception";
}
return "RequestCMS";
}
}
② 함수 호출결과 코드와 메시지를 매핑하는 "src/main/resources/templates/RequestCMS.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">Response</p>
<br/>
<fieldset class="fieldset1">
<legend th:text="${#request?.requestURL}"></legend>
<ul>
<li>receiptId (접수아이디) : <span th:text="${receiptId}"></span></li>
<li>tx_id (카카오톡 트랜잭션아이디[AppToApp 앱스킴 호출용]) : <span th:text="${tx_id}"></span></li>
</ul>
</fieldset>
</div>
</body>
③ 웹브라우저 페이지를 호출하여 함수호출 결과를 확인합니다.
기술지원센터
kakaoCert 기술지원은 유선, 메일, 원격지원 등 다양한 채널을 통해 제공됩니다.
T. 1600-9854E. code@linkhubcorp.com
Copyright (C) LinkHub. All Rights Reserved.