튜토리얼

.NET 개발환경에서 바로써트 SDK를 추가하여 출금동의 요청(requestCMS) 함수를 구현하는 예시입니다.

1. BaroCert SDK 추가

.NET SDK 예제코드 다운로드 후 압축을 해제합니다.
다운받은 SDK 예제코드의 Linkhub/, Barocert/ 폴더를 SDK를 적용할 프로젝트 경로에 복사하고. Linkhub.csproj, Barocert.csproj를 각각 기존 프로젝트로 추가합니다.
Barocert 프로젝트를 적용할 프로젝트의 참조로 추가합니다.

2. BaroCert SDK 설정

프로젝트에 Global.asax.cs 파일을 생성하여 연동환경 설정값, 패스써트 서비스 클래스를 선언하고 Application_Start() 함수에 패스써트 서비스 클래스 초기화 코드를 추가합니다.

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;

namespace Barocert.Passcert
{
	public class Global : System.Web.HttpApplication
	{
		// Passcert 서비스 객체 선언
		public static PasscertService passcertService;

		// 링크아이디
		private string LinkID = "TESTER";
		// 비밀키
		private string SecretKey = "SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I=";

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

			// 인증토큰 IP 검증 설정, ture-사용, false-미사용, (기본값:true)
			passcertService.IPRestrictOnOff = true;

			// 통신 고정 IP, true-사용, false-미사용, (기본값:false)
			passcertService.UseStaticIP = false;
		}
	}
}

3. RequestCMS 기능 구현

Web Form을 추가하여 requestCMS.aspx를 생성하여 응답코드, 메시지 확인 페이지를 추가하고, requestCMS.aspx.cs 파일의 Page_Load 이벤트에 함수 호출 코드를 추가합니다.

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;

namespace Barocert.Passcert.Example
{
	public partial class requestCMS : System.Web.UI.Page
	{

		public string code;
		public string message;
		public CMSReceipt result;

		/*
		 * 패스 이용자에게 자동이체 출금동의를 요청합니다.
		 * hhttps://developers.barocert.com/reference/pass/dotnet/cms/api#RequestCMS
		 */
		protected void Page_Load(object sender, EventArgs e)
		{

			// Passcert 이용기관코드, Passcert 파트너 사이트에서 확인
			string clientCode = "023070000014";

			// 출금동의 요청 정보 객체
			CMS cms = new CMS();

			// 수신자 휴대폰번호 - 11자 (하이픈 제외)
			cms.receiverHP = Global.passcertService.encrypt("01012341234");
			// 수신자 성명 - 80자
			cms.receiverName = Global.passcertService.encrypt("홍길동");
			// 수신자 생년월일 - 8자 (yyyyMMdd)
			cms.receiverBirthday = Global.passcertService.encrypt("19700101");

			// 인증요청 메시지 제목 - 최대 40자
			cms.reqTitle = "출금동의 요청 메시지 제목";
			// 요청 메시지 - 최대 500자
			cms.reqMessage = Global.passcertService.encrypt("출금동의 요청 메시지 내용");
			// 고객센터 연락처 - 최대 12자
			cms.callCenterNum = "1600-9854";
			// 인증요청 만료시간 - 최대 1,000(초)까지 입력 가능
			cms.expireIn = 1000;

			// 출금은행명 - 최대 100자
			cms.bankName = Global.passcertService.encrypt("국민은행");
			// 출금계좌번호 - 최대 32자
			cms.bankAccountNum = Global.passcertService.encrypt("9-****-5117-58");
			// 출금계좌 예금주명 - 최대 100자
			cms.bankAccountName = Global.passcertService.encrypt("홍길동");
			// 출금유형
			// CMS - 출금동의, OPEN_BANK - 오픈뱅킹
			cms.bankServiceType = Global.passcertService.encrypt("CMS");
			// 출금액
			cms.bankWithdraw = Global.passcertService.encrypt("1,000,000원");

			// 사용자 동의 필요 여부
			cms.userAgreementYN = true;
			// 사용자 정보 포함 여부
			cms.receiverInfoYN = true;

			// AppToApp 인증요청 여부
			// true - AppToApp 인증방식, false - 푸시(Push) 인증방식
			cms.appUseYN = false;
			// ApptoApp 인증방식에서 사용
			// 통신사 유형('SKT', 'KT', 'LGU'), 대문자 입력(대소문자 구분)
			// cms.telcoType = "SKT";
			// ApptoApp 인증방식에서 사용
			// 모바일장비 유형('ANDROID', 'IOS'), 대문자 입력(대소문자 구분)
			// cms.deviceOSType = "IOS";

			try
			{
				result = Global.passcertService.requestCMS(clientCode, cms);
			}
			catch (BarocertException ex)
			{
				code = ex.code.ToString();
				message = ex.Message;
			}
		}
	}
}

requestCMS.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="requestCMS.aspx.cs" Inherits="Barocert.Passcert.Example.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 id="Head1" runat="server">
	<title>Passcert SDK ASP.NET Example</title>
	<link href="../Example.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="content">
	<p class="heading1">Response</p>
	<br/>
	<fieldset class="fieldset1">
		<legend>패스 자동이체 출금동의 요청</legend>
		<ul>
			<% if (!String.IsNullOrEmpty(code)) { %>
				<li>Response.code : <%= code %> </li>
				<li>Response.message : <%= message %></li>
			<% } else { %>
				<li>접수아이디 (ReceiptID) : <%= result.receiptID%></li>
				<li>앱스킴 (Scheme) :  <%= result.scheme %></li>
				<li>앱다운로드URL (MarketURL) :  <%= result.marketUrl %></li>
			<% } %>
		</ul>
	</fieldset>
</div>
</body>
</html>

4. 결과 확인

함수 호출이 정상적으로 처리되면 "푸시(Push) 인증" 방식은 접수아이디(32자리 숫자)가 반환되며,, "앱투앱 인증" 방식은 접수아이디와 AppScheme 이 함께 반환됩니다. 실패인 경우 BarocertException으로 오류코드("-"로 시작하는 8자리 숫자값)와 오류메시지가 반환됩니다. [오류코드]