POPBill Developers
가이드

튜토리얼

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

1. POPBiLL SDK 추가

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

② 다운받은 SDK 예제코드의 Linkhub/, Popbill/ 폴더를 SDK를 적용할 프로젝트 경로에 복사하고. Linkhub.csproj, Popbill.csproj를 각각 기존 프로젝트로 추가합니다.

③ Popbill 프로젝트를 적용할 프로젝트의 참조로 추가합니다.

2. POPBiLL SDK 설정

연동환경 설정값, 현금영수증 서비스 클래스를 선언하고 Form1_Load() 함수에 서비스 클래스 초기화 코드를 추가합니다.

Public Class Form1
  '링크아이디
  Private Const LinkID As String = "TESTER"

  '비밀키
  Private SecretKey As String = "SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I="

  '현금영수증 서비스 객체 선언
  Private cashbillService As CashbillService

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    '현금영수증 서비스 객체 초기화
    cashbillService = New CashbillService(LinkID, SecretKey)

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

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

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

    '로컬시스템 시간 사용여부, true-사용, false-미사용, (기본값:false)
    cashbillService.UseLocalTimeYN = False

  End Sub
End Class

3. RegistIssue 기능 구현

Windows Form에 버튼을 생성하고 버튼의 Click Event 코드에 현금영수증 즉시 발행 (RegistIssue) 함수 호출 코드를 추가합니다.

Imports Popbill
Imports Popbill.Cashbill
Imports System.ComponentModel

Public Class Form1

    Private Sub btnRegistIssue_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegistIssue.Click
        Dim cashbill As Cashbill = New Cashbill

        ' 문서번호
        ' 문서 관리를 위해 파트너가 할당하는 식별번호
        ' 1~24자리 영문 대소문자, 숫자, 특수문자('-','_')로 구성
        cashbill.mgtKey = txtMgtKey.Text

        ' 거래일시, 형식(yyyyMMddHHmmss)
        ' 발행기준 전일부터 당일까지 입력 가능
        ' 미입력시 기본값(발행일시) 처리됨
        cashbill.tradeDT = "20250319093919"

        ' 문서형태
        cashbill.tradeType = "승인거래"

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

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

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

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

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

        ' 부가세
        cashbill.tax = "1000"

        ' 봉사료
        cashbill.serviceFee = "0"

        ' 가맹점 사업자번호, "-" 제외 10자리
        cashbill.franchiseCorpNum = txtCorpNum.Text

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

        ' 가맹점 상호명
        cashbill.franchiseCorpName = "발행자 상호"

        ' 가맹점 대표자 성명
        cashbill.franchiseCEOName = "발행자 대표자"

        ' 가맹점 주소
        cashbill.franchiseAddr = "발행자 주소"

        ' 가맹점 전화번호
        cashbill.franchiseTEL = ""

        ' 식별번호, 거래구분에 따라 작성
        ' 소득공제용 - 주민등록/휴대폰/카드번호/자진발급용 번호(010-000-1234) 기재가능
        ' 지출증빙용 - 사업자번호/주민등록/휴대폰/카드번호 기재가능
        cashbill.identityNum = "010-000-1234"

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

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

        ' 구매자(고객) 성명
        cashbill.customerName = "주문자명"

        ' 구매자(고객) 이메일
        ' 팝빌 개발환경에서 테스트하는 경우에도 안내 메일이 전송되므로,
        ' 실제 구매자의 메일주소가 기재되지 않도록 주의
        cashbill.email = ""

        ' 구매자(고객) 휴대폰
        cashbill.hp = "010-111-222"

        ' 구매자 알림문자 전송 여부
        ' 알림문자 전송시 포인트가 차감되며, 전송실패시 환불처리됨
        cashbill.smssendYN = False

        ' 현금영수증 상태 이력을 관리하기 위한 메모
        Dim memo As String = "즉시발행 메모"

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

        Try
            Dim response As CBIssueResponse = cashbillService.RegistIssue(txtCorpNum.Text, cashbill, memo, txtUserId.Text, emailSubject)

            MsgBox("code(응답코드) : " + response.code.ToString + vbCrLf + "message(응답메시지) : " + response.message + vbCrLf _
                   + "confirmNum(국세청 승인번호) : " + response.confirmNum + vbCrLf + "tradeDate(거래일자) : " + response.tradeDate)
        Catch ex As PopbillException
            MsgBox("code(응답코드) : " + ex.code.ToString + vbCrLf + "message(응답메시지) : " + ex.Message)
        End Try
    End Sub
End Class

4. 결과 확인

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