POPBill Developers
가이드

튜토리얼

.NET 개발환경에서 팝빌 SDK를 추가하여 카카오톡 알림톡 전송 (SendATS) 함수를 구현하는 예시입니다.

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 kakaoService As KakaoService

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

    '카카오톡 서비스 객체 초기화
    kakaoService = New KakaoService(LinkID, SecretKey)

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

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

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

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

  End Sub
End Class

3. SendATS 기능 구현

Windows Form에 버튼을 생성하고 버튼의 Click Event 코드에 카카오톡 알림톡 전송 (sendATS) 함수 호출 코드를 추가합니다.

Public Class Form1

    Private Sub btnSendATS_one_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles btnSendATS_one.Click

        ' 승인된 알림톡 템플릿코드
        ' └ 알림톡 템플릿 관리 팝업 URL(GetATSTemplateMgtURL API) 함수, 알림톡 템플릿 목록 확인(ListATStemplate API) 함수를 호출하거나
        '    팝빌사이트에서 승인된 알림톡 템플릿 코드를  확인 가능.
        Dim templateCode As String = "019020000163"

        '팝빌에 사전등록된 발신번호
        '※ 대체문자를 전송하는 경우에만 필수 입력
        Dim senderNum As String = ""

        '알림톡 템플릿 내용 (최대 1000자)
        Dim content As String = "[ 팝빌 ]" + vbCrLf
        content += "신청하신 #{템플릿코드}에 대한 심사가 완료되어 승인 처리되었습니다." + vbCrLf
        content += "해당 템플릿으로 전송 가능합니다." + vbCrLf + vbCrLf
        content += "문의사항 있으시면 파트너센터로 편하게 연락주시기 바랍니다." + vbCrLf + vbCrLf
        content += "팝빌 파트너센터 : 1600-8536" + vbCrLf
        content += "support@linkhub.co.kr"

        ' 대체문자 제목
        ' - 메시지 길이(90byte)에 따라 장문(LMS)인 경우에만 적용.
        Dim altSubject = "대체문자 제목"

        ' 대체문자 유형(altSendType)이 "A"일 경우, 대체문자로 전송할 내용 (최대 2000byte)
        ' └ 팝빌이 메시지 길이에 따라 단문(90byte 이하) 또는 장문(90byte 초과)으로 전송처리
        Dim altContent As String = "카카오톡이 실패하여 문자로 전송됩니다." + vbCrLf
        altContent += content

        ' 대체문자 유형 (null , "C" , "A" 중 택 1)
        ' null = 미전송, C = 알림톡과 동일 내용 전송 , A = 대체문자 내용(altContent)에 입력한 내용 전송
        Dim altSendType = "A"

        '수신번호
        Dim receiveNum = ""

        '수신자명
        Dim receiveName = "수신자명"

        ' 전송요청번호
        ' 팝빌이 접수 단위를 식별할 수 있도록 파트너가 할당하는 식별번호.
        ' 1~36자리로 구성. 영문, 숫자, 하이픈(-), 언더바(_)를 조합하여 팝빌 회원별로 중복되지 않도록 할당.
        Dim requestNum = ""

        '버튼정보를 수정하지 않고 템플릿 신청시 기재한 정보로 전송하는 경우 null 처리
        Dim buttonList As List(Of KakaoButton) = New List(Of KakaoButton)

        '버튼링크 URL 에 #{템플릿변수}를 기재하여 승인받은경우 URL 수정하여 전송
        'Dim buttonList As List(Of KakaoButton) = New List(Of KakaoButton)
        'Dim btnInfo As KakaoButton = New KakaoButton
        'btnInfo.n = "버튼명"                     '버튼명
        'btnInfo.t = "WL"                        '버튼유형 (DS - 배송조회 / WL - 웹링크 / AL - 앱링크 / MD - 메시지전달 / BK - 봇키워드)
        'btnInfo.u1 = "https://www.linkhub.co.kr"   '버튼링크1 [앱링크] iOS / [웹링크] Mobile
        'btnInfo.u2 = "http://www.popbill.co.kr"    '버튼링크2 [앱링크] Android / [웹링크] PC URL
        'buttonList.Add(btnInfo)

        Try
            Dim receiptNum As String = kakaoService.SendATS(txtCorpNum.Text, templateCode, senderNum, altSubject, altSendType, getReserveDT(), receiveNum, receiveName, content, altContent, requestNum, buttonList)

            MsgBox("receiptNum(접수번호) : " + receiptNum)
            txtReceiptNum.Text = receiptNum

        Catch ex As PopbillException
            MsgBox("code(응답코드) : " + ex.code.ToString + vbCrLf + "message(응답메시지) : " + ex.Message)
        End Try
    End Sub
End Class

4. 결과 확인

함수 호출 반환 결과는 아래와 같습니다.
- 성공 : ReceiptNum(접수번호) 18자리 문자열 반환
- 실패 : PopbillException 음의 정수 8자리 숫자값 오류코드와 오류메시지 반환 [오류코드]