튜토리얼
튜토리얼
Node.js 개발환경에서 바로써트 SDK를 추가하여 전자서명 요청(requestSign) 함수를 구현하는 예시입니다.
1. BaroCert SDK 추가
바로써트 Node.js SDK를 추가하기 위해 Express 프로젝트 "package.json" 파일에 바로써트 Node.js SDK 정보를 추가하고 npm install 또는 npm update를 진행합니다.
{
"name": "Barocert.sdk.example.node",
"version": "1.2.2",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.6.9",
"ejs": "~2.5.5",
"express": "~4.13.1",
"morgan": "~1.10.0",
"serve-favicon": "~2.3.0",
"barocert": "1.2.2"
}
}
2. BaroCert SDK 설정
프로젝트 routes 폴더 하위의 kakaocert.js 파일에 연동신청시 발급받은 인증정보를 변수로 선언하고 아래의 코드를 참조하여 카카오써트 서비스 객체를 생성 합니다.
var kakaocert = require('barocert');
kakaocert.config({
// 링크아이디
LinkID: 'TESTER',
// 비밀키
SecretKey: 'SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=',
// 인증토큰 IP제한기능 사용여부, True-사용, False-미사용, 기본값(True)
IPRestrictOnOff: true,
// 카카오써트 API 서비스 고정 IP 사용여부, True-사용, False-미사용, 기본값(False)
UseStaticIP: false,
defaultErrorHandler: function (Error) {
console.log('Error Occur : [' + Error.code + '] ' + Error.message);
}
});
/*
* Kakaocert API 서비스 클래스 생성
*/
var kakaocertService = kakaocert.KakaocertService();
3. RequestSign 기능 구현
① kakaocert.js 파일에 RequestSign 함수 코드를 추가합니다.
router.get('/RequestSign', function (req, res, next) {
// Kakaocert 이용기관 코드, Kakaocert 파트너 사이트에서 확인
var clientCode = '023030000004';
// 전자서명 요청정보 객체
var sign = {
// 수신자 정보(휴대폰번호, 성명, 생년월일)
receiverHP: kakaocertService._encrypt('01012341234'),
receiverName: kakaocertService._encrypt('홍길동'),
receiverBirthday: kakaocertService._encrypt('19700101'),
// 인증요청 메시지 제목 - 최대 40자
reqTitle: '전자서명(단건) 요청 메시지 제목',
// 인증요청 만료시간 - 최대 1,000(초)까지 입력 가능
expireIn: 1000,
// 서명 원문 - 원문 2,800자 까지 입력가능
token: kakaocertService._encrypt('전자서명(단건) 요청 원문'),
// 서명 원문 유형
// TEXT - 일반 텍스트, HASH - HASH 데이터
tokenType: 'TEXT',
// AppToApp 인증요청 여부
// true - AppToApp 인증방식, false - Talk Message 인증방식
appUseYN: false,
// App to App 방식 이용시, 호출할 URL
returnURL: 'https://www.kakaocert.com',
};
kakaocertService.requestSign(clientCode, sign,
function (result) {
res.render('requestSign', { path: req.path, result: result });
}, function (error) {
res.render('response', { path: req.path, code: error.code, message: error.message });
});
});
② 함수 호출결과 코드와 메시지를 출력하는 "/views/kakaocert/requestSign.ejs" 파일을 추가합니다.
<!DOCTYPE html>
<html>
<head>
<title>Response</title>
<link rel='stylesheet' href='/stylesheets/style.css'/>
<title>Barocert Kakao Service Node Example.</title>
</head>
<body>
<div id="content">
<p class="heading1">Response</p>
<br/>
<fieldset class="fieldset1">
<legend><%= path %></legend>
<ul>
<li>ReceiptID : <%= result %></li>
</ul>
</fieldset>
</div>
</body>
</html>
4. 결과 확인
함수 호출이 정상적으로 처리되면 "채널 메시지 인증" 방식은 접수아이디(32자리 숫자)가 반환되며, "앱투앱 인증" 방식은 접수아이디와 AppScheme 이 함께 반환됩니다. 실패인 경우 BarocertException으로 오류코드("-"로 시작하는 8자리 숫자값)와 오류메시지가 반환됩니다. [오류코드] 바로가기