POPBill Developers
가이드

튜토리얼

ASP 개발환경에서 팝빌 SDK를 추가하여 현금영수증 즉시 발행 (RegistIssue) 함수를 구현하는 예시입니다.

1. POPBiLL SDK 추가 및 설정

① 팝빌 연동자료실에서 ASP SDK 예제코드 다운로드 후 압축을 해제합니다.

② 압축해제한 SDK 예제코드에 포함된 Popbill/ 폴더를 웹사이트 Root Directory 경로에 복사합니다.

③ 현금영수증 서비스 연동환경 설정을 위해 프로젝트 Root Directory에 common.asp 파일을 생성하고 아래의 코드를 참고하여 API Key 를 설정합니다.

<!--#include virtual="/Popbill/Popbill.asp"-->
<!--#include virtual="/Popbill/CashbillService.asp"-->

<%
  ' 링크아이디
  LinkID = "LINKID"

  ' 비밀키
  SecretKey = "SwWxqU+0TExEXy/9TVjKPExI2VTUMMSLZtJf3Ed8q3I="

  ' 현금영수증 서비스 객체 선언
  set m_CashbillService = new CashbillService

  ' 현금영수증 서비스 객체 초기화
  m_CashbillService.Initialize LinkID, SecretKey

  ' 연동환경 설정, True-테스트, False-운영(Production), (기본값:False)
  m_CashbillService.IsTest = True

  ' 인증토큰 IP 검증 설정, True-사용, False-미사용, (기본값:True)
  m_CashbillService.IPRestrictOnOff = True

  ' 통신 IP 고정, True-사용, False-미사용, (기본값:False)
  m_CashbillService.UseStaticIP = False

  ' 로컬시스템 시간 사용여부, True-사용, False-미사용, (기본값:True)
  m_CashbillService.UseLocalTimeYN = True
%>

2. RegistIssue 기능 구현

프로젝트에 함수 호출을 처리하는 파일을 생성하고, 아래의 코드를 참조하여 코드를 추가합니다.

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
    <title>Popbill ASP Test.</title>
  </head>
<!--#include file="common.asp"-->
<%

  ' 팝빌 회원 사업자번호, "-" 제외
  testCorpNum = "1234567890"

  ' 팝빌 회원 아이디
  userID = "testkorea"

  ' 문서번호, 발행자별 고유번호 할당, 1~24자리 영문,숫자조합으로 중복없이 구성.
  mgtKey = "20211201-021"

  ' 메모
  memo = "즉시 발행 메모"

  ' 현금영수증 발행 안내메일 제목
  emailSubject = ""

  ' 현금영수증 객체 생성
  Set CashbillObj = New CashBill

  CashbillObj.mgtKey = mgtKey

  '문서형태, [승인거래, 취소거래] 중 기재
  CashbillObj.tradeType = "승인거래"

  '[취소거래시 필수] 당초 승인 현금영수증 국세청승인번호
  CashbillObj.orgConfirmNum = ""

  '[취소거래시 필수] 당초 승인 현금영수증 거래일자
  CashbillObj.orgTradeDate = ""

  '거래구분, [소득공제용, 지출증빙용] 중 기재
  CashbillObj.tradeUsage = "소득공제용"

  '거래유형, [일반, 도서공연, 대중교통] 중 기재
  CashbillObj.tradeOpt = "일반"

  '과세형태, [과세, 비과세] 중 기재
  CashbillObj.taxationType = "과세"

  '공급가액
  CashbillObj.supplyCost = "10000"

  '부가세
  CashbillObj.tax = "1000"

  '봉사료
  CashbillObj.serviceFee = "0"

  '합계금액, 공급가액 + 봉사료 + 세액
  CashbillObj.totalAmount = "11000"


  '가맹점 사업자번호, "-" 제외 10자리
  CashbillObj.franchiseCorpNum = testCorpNum

  '가맹점 종사업장 식별번호
  CashbillObj.franchiseTaxRegID = ""

  '가맹점 상호
  CashbillObj.franchiseCorpName = "가맹점 상호"

  '가맹점 대표자 성명
  CashbillObj.franchiseCEOName = "가맹점 대표자"

  '가맹점 주소
  CashbillObj.franchiseAddr = "가맹점 주소"

  '가맹점 전화번호
  CashbillObj.franchiseTEL = "070-1234-1234"


  '거래처 식별번호, 거래유형에 따라 작성
  '소득공제용 - 주민등록/휴대폰/카드번호 기재가능
  '지출증빙용 - 사업자번호/주민등록/휴대폰/카드번호 기재가능
  CashbillObj.identityNum = "0101112222"

  '주문고객명
  CashbillObj.customerName = "고객명"

  '주문상품명
  CashbillObj.itemName = "상품명"

  '주문번호
  CashbillObj.orderNumber = "주문번호"

  '이메일
  '팝빌 개발환경에서 테스트하는 경우에도 안내 메일이 전송되므로,
  '실제 거래처의 메일주소가 기재되지 않도록 주의
  CashbillObj.email = "test@test.com"

  '휴대폰
  CashbillObj.hp = "111-1234-1234"

  '팩스
  CashbillObj.fax = "777-444-3333"


  '발행안내문자 전송여부
  '안내문자 전송시 포인트가 차감되며, 전송실패시 환불처리됩니다.
  CashbillObj.smssendYN = False

  On Error Resume Next

  Set Presponse = m_CashbillService.RegistIssue(testCorpNum, CashbillObj, memo, userID , emailSubject)

  If Err.Number <> 0 then
    code = Err.Number
    message = Err.Description
    Err.Clears
  Else
    code = Presponse.code
    message = Presponse.message
    confirmNum = Presponse.confirmNum
    tradeDate = Presponse.tradeDate
  End If

  On Error GoTo 0

%>
  <body>
    <div id="content">
    <p class="heading1">Response</p>
    <br/>
      <fieldset class="fieldset1">
      <legend>현금영수증 즉시 발행</legend>
        <ul>
          <li> Response.code : <%=code%> </li>
          <li> Response.message : <%=message%> </li>
          <% If confirmNum <> "" Then %>
          <li> Response.confirmNum : <%=confirmNum%> </li>
          <% End If %>
          <% If tradeDate <> "" Then %>
          <li> Response.tradeDate : <%=tradeDate%> </li>
          <% End If %>
        </ul>
      </fieldset>
    </div>
  </body>
</html>

3. 결과 확인

함수 호출 반환 결과는 아래와 같습니다.
- 성공 : Response code 로 숫자 1 반환
- 실패 : PopbillException 으로 음의 정수 8자리 숫자값 오류코드와 오류메시지 반환 [오류코드]