콘텐츠로 이동

튜토리얼

Visual Basic 개발환경에서 팝빌 SDK를 추가하고, 팩스 전송 (SendFAX) API를 호출하는 기본 과정을 단계별로 따라 해볼 수 있도록 구성된 가이드 입니다.

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

② 압축해제한 SDK 예제 프로젝트의 Linkhub/ Popbill*/ 폴더에 포함된 클래스모듈을 기존 프로젝트의 클래스모듈로 추가합니다.

Window 폼 코드에 API Key 와 클래스를 선언하고 Form_Load() 서브모듈에 팩스 클래스 초기화 코드를 추가합니다.

① Form API Key, 클래스 객체 선언

Option Explicit
' API Key
' - 연동신청 시 발급받은 인증 정보(LinkID, SecretKey로 구성)
' • LinkID: 파트너를 식별하기 위한 고유 식별자
' • SecretKey: API 인증토큰 발급에 사용되는 키
'
' TODO: 아래 LinkID, SecretKey를 발급받은 정보로 교체해 주세요.
Private Const LinkID = "TESTER"
Private Const SecretKey = "SwWxqU+0TErBXy/9TVjIPEnI0VTUMMSQZtJf3Ed8q3I="
' 팩스 서비스 객체 선언
Private FaxService As New PBFAXService

② Form_Load() 서브모듈

Private Sub Form_Load()
' 팩스 서비스 객체 초기화
FaxService.Initialize LinkID, SecretKey
' 연동환경(테스트/운영) 설정
' - 연동환경을 테스트 또는 운영으로 설정합니다.
' • True: 테스트 환경으로 설정
' • False(default) : 운영 환경으로 설정
'
' ※ 운영전환 이후부터 IsTest 설정 변경만으로 자유롭게 환경 전환(테스트<->운영)이 가능합니다.
FaxService.IsTest = True
' 인증토큰 IP 일치 검증 사용 여부
' - 인증토큰을 발급받은 IP와, 그 토큰을 사용하여 API를 호출하는 IP가 같은지를 검사합니다.
' (토큰이 외부로 유출되어도 다른 IP에서는 사용하지 못하도록 막는 보안 장치)
' • True(사용, default) : 두 IP가 일치할 때만 API 호출 허용
' • False(미사용) : IP 일치 검사를 생략
'
' ※ False는 토큰 발급 시점의 IP와 API 호출 시점의 IP가 달라질 수 있는 환경에서 사용
' 예) 오토스케일링, 로드밸런서, NAT 등으로 호출 IP가 유동적인 클라우드 환경
FaxService.IPRestrictOnOff = True
' 로컬시스템 시간 사용 여부
' - 현재시각 기준을 설정합니다.
' • True(사용) : 로컬시스템 시간 사용
' • False(미사용, default) : 팝빌 서버의 시간을 사용
'
' ※ 현재시각은 주로 인증토큰 발급 및 만료 판단 등에 사용됩니다.
' ※ 이 설정은 홈택스 수집 기간, 세금계산서 작성일자, 발행일자 같은 업무 데이터의 날짜값을 변경하는 옵션이 아닙니다.
' ※ 로컬 서버 시간이 정상 동기화되어 있으면 일반적으로 True를 사용하고 서버 시간 오차로 인증 실패가 의심되거나
' 서버 시간을 신뢰하기 어려운 환경이면 False를 사용합니다.
FaxService.UseLocalTimeYN = False
End Sub

Form에 버튼을 생성하고 버튼의 Click Event 코드에 팩스 전송 (SendFAX) 함수를 작성합니다.

Private Sub btnSendFAX_Click()
Dim FilePaths As New Collection
Dim senderNum As String
Dim senderName As String
Dim receivers As New Collection
Dim receiver As New PBReceiver
Dim receiptNum As String
Dim adsYN As Boolean
Dim title As String
Dim requestNum As String
Dim corpNum As String
Dim userID As String
Dim reserveDT As String
'팝빌회원 사업자번호
corpNum = "1234567890"
'팝빌회원 아이디
userID = "testkorea"
CommonDialog1.fileName = ""
CommonDialog1.ShowOpen
If CommonDialog1.fileName = "" Then Exit Sub
FilePaths.Add CommonDialog1.fileName
'발신번호
senderNum = "07043042991"
'발신자명
senderName = "발신자명"
'수신번호
receiver.receiverNum = "070111222"
'수신자명
receiver.receiverName = "수신자 명칭"
receivers.Add receiver
'광고팩스 전송여부
adsYN = False
'팩스제목
title = "팩스 단건전송 제목"
'예약전송일시
reserveDT = ""
'요청번호, 파트너가 전송요청에 대한 관리번호를 직접 할당하여 관리하는 경우 기재
'최대 36자리, 영문, 숫자, 언더바('_'), 하이픈('-')을 조합하여 사업자별로 중복되지 않도록 구성
requestNum = ""
receiptNum = FaxService.SendFAX(corpNum, senderNum, receivers, FilePaths, reserveDT, userID, senderName, adsYN, title, requestNum)
If receiptNum = "" Then
MsgBox ("응답코드 : " + CStr(FaxService.LastErrCode) + vbCrLf + "응답메시지 : " + FaxService.LastErrMessage)
Exit Sub
End If
MsgBox "접수번호 : " + receiptNum
End Sub

API 호출 응답결과는 다음과 같습니다.

구분응답
성공ReceiptNum(접수번호) : 18자리 문자열
실패code : 오류코드 (8자리 음의 정수) [오류코드]
message : 오류메시지