연동매뉴얼

.NET API

(ASP.NET)

kakaoCert ASP.NET 튜토리얼

.NET 개발환경에서 프로젝트에 kakaoCert .NET SDK를 추가한 후 자동이체 출금동의 요청 기능을 구현하는 예시입니다.

1. kakaoCert SDK 추가 및 클래스 초기화.NET Framework 3.5Visual Studio 2008

① 좌측 .NET 예제 다운 버튼을 통해 kakaoCert .NET 예제를 다운받고 압축을 해제합니다.

② 다운받은 SDK 예제코드의 Linkhub, Kakaocert 폴더를 kakaoCert 기능이 추가될 프로젝트에 복사합니다. Linkhub.csproj, Kakaocert.csproj를 각각 기존 프로젝트로 추가합니다.

kakaoCert .NET SDK 기존 프로젝트 추가 예시 화면

③ kakaoCert 기능이 추가될 프로젝트에 복사한 Kakaocert 프로젝트를 참조 추가합니다.

※ Kakaocert 프로젝트는 Linkhub 프로젝트를 참조하고 있습니다.

kakaoCert .NET SDK 참조 추가 예시 화면

④ 프로젝트에 Global.asax 파일을 생성합니다.

프로젝트에 Global.asax 파일을 생성 예시 화면

⑤ Global.asax 파일의 상단에 using Kakaocert; 추가 후, kakaoCert 서비스 클래스를 선언하고 Application_Start() 함수에 kakaoCert 서비스 클래스 초기화 코드를 추가합니다. 아래 코드를 참고하여 연동신청하여 발급 받은 링크아이디(LinkID)와 비밀키(Secretkey)를 입력해야 합니다.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Xml.Linq;

using Kakaocert;

namespace kakoacert_eaxmple
{
    public class Global : System.Web.HttpApplication
    {
        // 링크아이디
        private string LinkID = "TESTER";

        // 비밀키
        private string SecretKey = "SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=";

        // kakaoCert 서비스 객체 선언
        public static KakaocertService kakaocertService;

        protected void Application_Start(object sender, EventArgs e)
        {
            // kakaoCert 서비스 객체 초기화
            kakaocertService = new KakaocertService(LinkID, SecretKey);

            // 인증토큰 IP 제한기능 사용여부, 권장(true)
            kakaocertService.IPRestrictOnOff = true;
        }

        // 생략
    }
}

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

① 프로젝트에 Web Form을 추가하여 WebForm_RequestCMS.aspx를 생성하여 오류 코드, 메시지 확인할 수 있도록 코드를 수정합니다.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_RequestCMS.aspx.cs" Inherits="kakoacert_eaxmple.WebForm_RequestCMS" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>kakaocert SDK ASP.NET Example</title>
</head>
<body>
    <div>
        <p>Response</p>
        <fieldset>
        <legend>자동이체 출금동의 요청</legend>
        <ul>
            <% if (String.IsNullOrEmpty(code)) { %>
                <li>접수아이디(receiptID) :  <%= receiptId %></li>
            <% } else { %>
                <li>오류 코드(code) :  <%= code %></li>
                <li>오류 메시지(message) :  <%= message %></li>
            <% } %>
        </ul>
        </fieldset>
    </div>
</body>
</html>

② 아래 코드를 참고하여 WebForm_RequestCMS.aspx.cs 파일에 자동이체 출금동의 요청 함수 호출 코드를 입력합니다.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using Kakaocert;

namespace kakoacert_eaxmple
{
    public partial class WebForm_RequestCMS : System.Web.UI.Page
    {
        public String code;
        public String message;
        public String receiptId;

        protected void Page_Load(object sender, EventArgs e)
        {
            /**
            * 자동이체 출금동의 인증을 요청합니다.
            * - 해당 서비스는 전자서명을 하는 당사자와 출금계좌의 예금주가 동일한 경우에만 사용이 가능합니다.
            * - 전자서명 당사자와 출금계좌의 예금주가 동일인임을 체크하는 의무는 이용기관에 있습니다.
            * - 금융결제원에 증빙자료(전자서명 데이터) 제출은 이용기관 측 에서 진행해야 합니다.
            */

            // kakaoCert 이용기관코드, kakaoCert 파트너 사이트에서 확인
            String clientCode = "020040000002";

            RequestCMS requestObj = new RequestCMS();

            // 고객센터 전화번호, 카카오톡 인증메시지 중 "고객센터" 항목에 표시
            requestObj.CallCenterNum = "1600-9999";

            // 인증요청 만료시간(초), 최대값 : 1000  인증요청 만료시간(초) 내에 미인증시, 만료 상태로 처리됨 (권장 : 300)
            requestObj.Expires_in = 300;

            // 수신자 생년월일, 형식 : YYYYMMDD
            requestObj.ReceiverBirthDay = "19700101";

            // 수신자 휴대폰번호
            requestObj.ReceiverHP = "01012341234";

            // 수신자 성명
            requestObj.ReceiverName = "테스트";

            // 예금주명 
            requestObj.BankAccountName = "예금주명";

            // 계좌번호, 이용기관은 사용자가 식별가능한 범위내에서 계좌번호의 일부를 마스킹 처리할 수 있음 (예시) 371-02-6***85
            requestObj.BankAccountNum = "9-4324-5**7-58";

            // 참가기관 코드
            requestObj.BankCode = "004";

            // 납부자번호, 이용기관에서 부여한 고객식별번호
            requestObj.ClientUserID = "clientUserID-0423-01";

            // 별칭코드, 이용기관이 생성한 별칭코드 (파트너 사이트에서 확인가능)
            // 카카오톡 인증메시지 중 "요청기관" 항목에 표시
            // 별칭코드 미 기재시 이용기관의 이용기관명이 "요청기관" 항목에 표시
            requestObj.SubClientID = "";

            // 인증요청 메시지 부가내용, 카카오톡 인증메시지 중 상단에 표시
            requestObj.TMSMessage = "TMSMessage";

            // 인증요청 메시지 제목, 카카오톡 인증메시지 중 "요청구분" 항목에 표시
            requestObj.TMSTitle = "자동이체 출금동의 요청";


            // 인증서 발급유형 선택
            // true : 휴대폰 본인인증만을 이용해 인증서 발급
            // false : 본인계좌 점유 인증을 이용해 인증서 발급
            // 카카오톡 인증메시지를 수신한 사용자가 카카오인증 비회원일 경우, 카카오인증 회원등록 절차를 거쳐 은행계좌 실명확인 절차를 밟은 다음 전자서명 가능
            requestObj.isAllowSimpleRegistYN = false;

            // 수신자 실명확인 여부
            // true : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 ReceiverName 값을 비교
            // false : 카카오페이가 본인인증을 통해 확보한 사용자 실명과 RecevierName 값을 비교하지 않음.
            requestObj.isVerifyNameYN = true;

            // PayLoad, 이용기관이 생성한 payload(메모) 값
            requestObj.PayLoad = "memo info";

            try
            {
                receiptId = Global.kakaocertService.requestCMS(clientCode, requestObj);
            }
            catch (KakaocertException ex)
            {
                code = ex.code.ToString();
                message = ex.Message;
            }
        }
    }
}

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

requestCMS 응답 결과 예시 화면

기술지원센터

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