POPBill Developers
가이드

Webhook 개요

Webhook을 적용하여 팝빌에서 발생하는 상태 변경 이벤트를 프로그램사 공급사가 설정한 콜백 URL로 실시간 POST 요청을 전달합니다. API 호출없이 이벤트 시점에 자동으로 상태 확인이 가능하여 불필요한 리소스 낭비를 줄이고, 보다 효율적인 시스템 연동과 운영이 가능합니다.

팝빌 웹훅 프로세스

개발 가이드

팝빌 Webhook 수신 VBScript 예제코드입니다.
팝빌 ASP SDK 예제코드에 포함된 ./Popbill/Linkhub/json2.asp를 사용하여 Webhook JSON Message를 처리합니다.
Webhook 이벤트 메시지의 추가적인 항목은 하단의 [Webhook 메시지 구성]을 참조하시기 바랍니다.

'DocumentRoot/connect.asp

<!--#include file="Popbill/Linkhub/json2.asp"-->

<%

If Request.TotalBytes > 0 Then

  Dim RequestBodyBytes
  RequestBodyBytes = Request.TotalBytes

  'JSON String을 JSON Object로 변환
  Set parse = JSON.parse(BytesToStr(Request.BinaryRead(RequestBodyBytes)))

  eventDT = parse.eventDT 'Webhook 실행일시
  eventType = parse.eventType 'Webhook 유형
  '추가적인 항목은 [Webhook 메시지 구성] 참조

  'Webhook 수신 성공처리를 위해 Response Message "OK" String 반환
  Response.Write "OK"

End If

'Byte 형태의 POST Request Body Message를 String으로 변환하는 함수
Function BytesToStr(bytes)
  Dim Stream
  Set Stream = Server.CreateObject("Adodb.Stream")
    Stream.Type = 1 'adTypeBinary
    Stream.Open
    Stream.Write bytes
    Stream.Position = 0
    Stream.Type = 2 'adTypeText
    Stream.Charset = "UTF-8"
    BytesToStr = Stream.ReadText
    Stream.Close
  Set Stream = Nothing
End Function

%>

응답결과

프로그램 공급사는 Webhook 수신 후 "성공" 응답결과를 반환해야만 팝빌에서 완료 처리가 가능합니다. 응답결과를 반환하지 않은 경우 팝빌은 Webhook 수신이 실패된 것으로 간주하여 Retry를 실행하기 때문에, 프로그램 공급사는 중복 데이터를 수신하지 않도록 예외처리 하여야 합니다.

성공

Response Body를 String 또는 JSON 타입 중 선택하여 아래와 같이 반환합니다.

유형 String 타입 JSON 타입
Response Body "OK" {"result":"OK"}

실패 및 재시도

응답결과 미반환, Response Body 형식 불일치, HTTP 통신 오류 등의 사유로 Webhook 수신 실패가 발생합니다. 실패 건은 팝빌 운영 정책에 의하여 자동으로 총 3회 재실행됩니다.

  1. 1) 팝빌은 실패한 Webhook Event에 대하여 5분 간격으로 3회 재실행 합니다.
  2. 2) 최종 실패된 Webhook은 팝빌 전담인력이 모니터링하여 프로그램 공급사에 다양한 채널(유선,메일)로 안내합니다.
  3. 3) 프로그램 공급사는 조치 이후 팝빌 사이트에서 재실행하여 Webhook 수신을 완료합니다. [팝빌 Webhook 실행내역]