PHP 개발환경에서 kakaoCert PHP5 SDK를 추가하여 자동이체 출금동의 요청 기능을 구현하는 예시입니다.
① 좌측 PHP 예제 다운 버튼을 통하여 kakaocert.sdk.example.php5를 다운받고 압축을 해제합니다.
② 다운 받은 SDK 예제에 포함된 Kakaocert 폴더를 웹 프로젝트 Root Directory에 복사하여 넣습니다.
③ 아래 코드를 참고하여 Root Directory에 "common.php" 파일을 생성합니다. KakaocertService 인스턴스를 생성하고 연동신청하여 발급 받은 링크아이디(LinkID)와 비밀키(SecretKey)을 입력해주시기 바랍니다.
※ PHP curl 모듈을 사용할 수 없을 경우 또는 PHP curl 모듈 관련 오류가 발생할 경우 LINKHUB_COMM_MODE 상수의 값을 "STREAM"으로 변경하고, php.ini의 allow_url_fopen 설정을 on으로 변경해주시기 바랍니다. 보안적인 이유로 개발환경이 아니라 실제 운용환경에서는 권장 하지 않습니다.
<?php
require_once './Kakaocert/Kakaocert.php';
// 링크아이디
$LinkID = 'TESTER';
// 비밀키
$SecretKey = 'SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=';
// 통신방식 기본은 CURL , curl 사용에 문제가 있을경우 STREAM 사용가능.
// STREAM 사용시에는 php.ini의 allow_url_fopen = on 으로 설정해야함.
define('LINKHUB_COMM_MODE','CURL');
$KakaocertService = new KakaocertService($LinkID, $SecretKey);
// 인증토큰에 대한 IP제한기능 사용여부, 권장(true)
$KakaocertService->IPRestrictOnOff(true);
?>
① 웹 프로젝트의 Root Directory에 함수 호출을 처리하는 "RequestCMS.php" 파일을 생성하고, 자동이체 출금동의 요청 함수 호출을 처리하는 코드를 입력합니다.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>kakaocert SDK PHP Example.</title>
</head>
<?php
/*
* 자동이체 출금동의 인증을 요청합니다.
* - 해당 서비스는 전자서명을 하는 당사자와 출금계좌의 예금주가 동일한 경우에만 사용이 가능합니다.
* - 전자서명 당사자와 출금계좌의 예금주가 동일인임을 체크하는 의무는 이용기관에 있습니다.
* - 금융결제원에 증빙자료(전자서명 데이터) 제출은 이용기관 측 에서 진행해야 합니다.
*/
include 'common.php';
// kakaoCert 이용기관코드, kakaoCert 파트너 사이트에서 확인
$clientCode = '020040000050';
// 자동이체 출금동의 요청정보 객체
$RequestCMS = new RequestCMS();
// 고객센터 전화번호, 카카오톡 인증메시지 중 "고객센터" 항목에 표시
$RequestCMS->CallCenterNum = '1600-9999';
// 인증요청 만료시간(초), 최대값 : 1000 인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
$RequestCMS->Expires_in = 300;
// 수신자 생년월일, 형식 : YYYYMMDD
$RequestCMS->ReceiverBirthDay = '19700101';
// 수신자 휴대폰번호
$RequestCMS->ReceiverHP = '01012341234';
// 수신자 성명
$RequestCMS->ReceiverName = '테스트';
// 예금주명
$RequestCMS->BankAccountName = '예금주명';
// 계좌번호, 이용기관은 사용자가 식별가능한 범위내에서 계좌번호의 일부를 마스킹 처리할 수 있음 (예시) 371-02-6***85
$RequestCMS->BankAccountNum = '9-4324-5**7-58';
// 참가기관 코드
$RequestCMS->BankCode = '004';
// 납부자번호, 이용기관에서 부여한 고객식별번호
$RequestCMS->ClientUserID = 'clientUserID-0423-01';
// 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
// 카카오톡 인증메시지 중 "요청기관" 항목에 표시
// 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
$RequestCMS->SubClientID = '';
// 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
$RequestCMS->TMSMessage = 'TMSMessage';
// 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
$RequestCMS->TMSTitle = 'TMSTitle';
// 인증서 발급유형 선택
// true : 휴대폰 본인인증만을 이용해 인증서 발급
// false : 본인계좌 점유 인증을 이용해 인증서 발급
// 카카오톡 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우, 카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차를 밟은 다음 전자서명 가능
$RequestCMS->isAllowSimpleRegistYN = false;
// 수신자 실명확인 여부
// true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
// false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
$RequestCMS->isVerifyNameYN = true;
// PayLoad, 이용기관이 생성한 payload(메모) 값
$RequestCMS->PayLoad = 'memo Info';
try {
$receiptID = $KakaocertService->requestCMS($clientCode, $RequestCMS);
}
catch(KakaocertException $pe) {
$code = $pe->getCode();
$message = $pe->getMessage();
}
?>
<body>
<div>
<p>Response</p>
<fieldset>
<legend>자동이체 출금동의 요청</legend>
<ul>
<?php
if ( isset($receiptID) ) {
?>
<li>접수아이디 (receiptID) : <?php echo $receiptID ?></li>
<?php
} else {
?>
<li>오류코드 : <?php echo $code ?> </li>
<li>오류메시지 : <?php echo $message ?> </li>
<?php
}
?>
</ul>
</fieldset>
</div>
</body>
</html>
② 웹브라우저 페이지를 호출하여 함수호출 결과를 확인합니다.
기술지원센터
kakaoCert 기술지원은 유선, 메일, 원격지원 등 다양한 채널을 통해 제공됩니다.
T. 1600-9854E. code@linkhub.co.kr
Copyright (C) LinkHub. All Rights Reserved.