안녕하세요. 고객의 가치를 연결하는 비즈니스 파트너 링크허브 입니다.
본 포스팅에서는 JAVA - JSP 개발환경에서 고객사들이 팝빌 현금영수증 API SDK 를 쉽고 빠르게 이용할 수 있도록, 예시를 이용하여 연동 설정 방법을 안내드리겠습니다. 먼저, SDK를 추가한 후 "즉시발행(RegistIssue) API"를 구현하는 순서로 진행하겠습니다.
팝빌 SDK 는 JDK v1.6 이상 개발환경에서 이용 가능하며 , API 호출과 응답의 메시지 인코딩은 "UTF-8 Character-Set"을 지원합니다.
"팝빌은 링크허브에서 자체 개발하고 직접 운영하는 현금영수증 서비스 Brand Name 입니다."
아래 설명하는 예시는 [ CentOS 6.8 | Tomcat7 | JDK 1.6 ] 기준으로 작성되어 있어, 이용 중이신 개발환경과 차이가 있을 수 있는 점 감안해 주시기 바랍니다.
1. 현금영수증 SDK 추가
① 링크허브 연동자료실에서 JAVA - JSP 현금영수증 SDK를 다운로드 후 압축을 해제합니다.
[참고] JAVA - JSP 현금영수증 SDK 다운로드 - https://www.linkhub.co.kr/Downloads/Cashbill/97?PageNum=1
② SDK내에 포함되어 있는 다음 3개 jar파일을 복사합니다.
③ 웹서버 기본 디렉토리에 "$CATALINA_HOME/webapps/ROOT/common.jsp" 환경설정을 위한 파일을 생성하고 현금영수증 인스턴스, 인증정보 (LinkID, SecretKey) , 연동환경 설정값(IsTest)을 선언합니다.
<%-- 현금영수증 인스턴스 생성 --%>
<jsp:useBean id="cashbillService" scope="application" class="com.popbill.api.cashbill.CashbillServiceImp"/>
<%-- 링크허브에서 발급받은 인증정보 링크아이디(LinkID), 비밀키(SecretKey) 입력 --%>
<jsp:setProperty name="cashbillService" property="linkID" value=" LINKID "/>
<jsp:setProperty name="cashbillService" property="secretKey" value=" SwWxqU+0TExEXy/9TVjKPExI2VTUMMSLZtJf3Ed8q3I= "/>
<%-- 연동환경 설정값, true-개발용(테스트베드), false-상업용(실서비스) --%>
<jsp:setProperty name="cashbillService" property="test" value="true"/>
▶ 링크허브에서 발급받은 고객사 인증정보로 링크아이디(LinkID)와 비밀키(SecretKey) 값을 변경하시기 바랍니다.
2. API 구현 ① RegistIssue API를 호출하는 "$CATALINA_HOME/webapps/ROOT/registIssue.jsp" 파일을 생성하고, 현금영수증을 발행하기 위해 RegistIssue API를 작성합니다.
RegistIssue API 열기 RegistIssue API 닫기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>현금영수증 API 연동 가이드</title>
</head>
<%@ include file="common.jsp" %>
<%@page import="com.popbill.api.Response"%>
<%@page import="com.popbill.api.PopbillException"%>
<%@page import="com.popbill.api.cashbill.Cashbill"%>
<%
// 팝빌회원 사업자번호, '-'제외 10자리
String corpNum = "1234567890";
// 현금영수증 정보 객체
Cashbill cashbill = new Cashbill();
// 현금영수증 문서관리번호, 최대 24자리, 영문, 숫자 '-', '_'를 조합하여 사업자별로 중복되지 않도록 구성
cashbill.setMgtKey("20170717-01");
// 문서형태, {승인거래, 취소거래} 중 기재
cashbill.setTradeType("승인거래");
// [취소거래 시 필수] 원본 현금영수증 승인번호
cashbill.setOrgConfirmNum("");
// [취소거래 시 필수] 원본 현금영수증 거래일자
cashbill.setOrgTradeDate("");
// 거래구분, {소득공제용, 지출증빙용} 중 기재
cashbill.setTradeUsage("소득공제용");
// 거래유형, {일반, 도서, 대중교통} 중 기재
cashbill.setTradeOpt("일반");
//거래처 식별번호, 거래구분에 따라 작성
//소득공제용 - 주민등록/휴대폰/카드번호 기재가능
//지출증빙용 - 사업자번호/주민등록/휴대폰/카드번호 기재가능
cashbill.setIdentityNum("0101112222");
// 과세형태, {과세, 비과세} 중 기재
cashbill.setTaxationType("과세");
// 공급가액, 숫자만 가능
cashbill.setSupplyCost("10000");
// 부가세, 숫자만 가능
cashbill.setTax("1000");
// 봉사료, 숫자만 가능
cashbill.setServiceFee("0");
// 거래금액, 숫자만 가능, 봉사료 + 공급가액 + 부가세
cashbill.setTotalAmount("11000");
// 가맹점 사업자번호, '-'제외 10자리
cashbill.setFranchiseCorpNum(corpNum);
// 가맹점 상호
cashbill.setFranchiseCorpName("가맹점 상호");
// 가맹점 대표자성명
cashbill.setFranchiseCEOName("가맹점 대표자");
// 가맹점 주소
cashbill.setFranchiseAddr("가맹점 주소");
// 가맹점 연락처
cashbill.setFranchiseTEL("07043042991");
// 발행시 안내문자 전송여부
cashbill.setSmssendYN(false);
// 거래처 주문자명
cashbill.setCustomerName("주문자명");
// 거래처 주문상품명
cashbill.setItemName("주문상품명");
// 거래처 주문번호
cashbill.setOrderNumber("주문번호");
// 거래처 이메일
cashbill.setEmail("test@test.com");
// 거래처 휴대폰
cashbill.setHp("010111222");
// 거래처 팩스
cashbill.setFax("070111222");
// 메모
String memo = "발행 메모";
Response CheckResponse = null;
try {
CheckResponse = cashbillService.registIssue(corpNum, cashbill, memo);
ResultCode = CheckResponse.getCode();
ResultMessage = CheckResponse.getMessage();
} catch (PopbillException pe) {
ResultCode = pe.getCode();
ResultMessage = pe.getMessage()
}
%>
<body>
Response.code : <%=ResultCode%>
Response.message : <%=ResultMessage%>
</body>
</html>
RegistIssue API 닫기
② 브라우저에서 registIssue.jsp 페이지를 로드하여 RegistIssue API가 정상적으로 처리 되었음을 메시지를 통해 확인합니다.
③ 발행된 현금영수증은 팝빌 개발용(test.popbill.com) 사이트에서 확인할 수 있습니다.
[참고] 팝빌 연동 개발을 위한 테스트베드(개발용) 안내 - https://linkhub.tistory.com/91
팝빌에서 제공하는 다양한 API는 동일한 컨셉으로 개발되어 있어, 하나의 서비스를 이용한 경험이 있으면 다른 서비스들도 유사한 방법으로 빠르게 연동이 가능하니 많은 이용 부탁드립니다.
지금까지 JAVA - JSP 개발환경에서 현금영수증 API를 연동하는 방법에 대해 안내드렸는데, 내용에 대한 추가적인 문의가 있으면 기술지원센터로 편하게 연락주시기 바랍니다.
고객사의 편의를 위하여 이메일, 전화 등 다양한 채널을 열어놓고 있으니 언제든지 연락 주시기 바랍니다.
기술지원센터 / T. 1600-9854 / E. code@linkhub.co.kr