POPBill Developers
Webhook

튜토리얼

본 가이드는 .NET Core 개발환경에서 전자세금계산서 웹훅을 구현하는 예시입니다.
고객사는 [Webhook 프로세스] 를 참고하여 개발을 진행합니다.

개발 가이드 샘플

① Webhook 수신 기능을 구현하기 위한 Web API 프로젝트를 생성합니다.

Webhook dotnetCore 설정 방법

② JSON 포맷의 Webhook 메시지를 매핑하기 위한 프로젝트 Models/ 폴더에 모델 클래스 파일을 추가합니다.
※추가적인 Webhook 필드 항목은 [Webhook 메시지 구성]을 참조하여 추가합니다.

Webhook dotnetCore 설정 방법
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication1.Models
{
    public class PopbillConnect
    {
        public string eventDT { get; set; }
        public string eventType { get; set; }
        // 하단의 [Webhook 메시지 구성]을 참조하여 모델 필드 추가
    }
}

③ POST 메시지를 처리하는 C# APIController 코드를 추가합니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class ValuesController : ApiController
    {

        // POST api/values
        public HttpResponseMessage Post([FromBody]PopbillConnect jsonInfo)
        {
            var response = new HttpResponseMessage();
            response.Headers.Add("ContentType", "text/plain");

            // PopbillConnect 모델에 선언된 필드 매핑
            String eventDT = jsonInfo.eventDT;
            String eventType = jsonInfo.eventType;

            Console.WriteLine(eventType);

            // Webhook 성공 응답 처리
            response.StatusCode = HttpStatusCode.OK;
            response.Content = new StringContent("OK");

            return response;
        }
    }
}

응답결과

고객사는 전송 받은 웹훅 처리결과를 팝빌에 HTTP Response로 반환합니다. 팝빌은 고객사가 반환한 결과값을 바탕으로 성공 여부를 확인합니다. 성공을 제외한 모든 응답은 팝빌에서 실패로 간주하며 재시도 합니다.

1. 성공

고객사는 웹훅을 정상적으로 전송 받은 경우 Response Body를 String 또는 JSON 타입 중 선택하여 다음과 같이 반환합니다.

유형 상태코드 성공 결과값
Response Body 200 - String 타입: “OK”
- JSON 타입: {“result”:“OK”}

2. 실패 및 재시도

고객사의 서버로 웹훅이 전송되지 않은 경우 팝빌에서 [재전송정책] 에 따라 총 4회 자동 전송 됩니다.
최종 시도에도 실패된 웹훅은 팝빌 기술지원센터에서 사전에 고객사와 협의된 채널(유선,메일)을 통해 안내하고 있습니다.

웹훅 실패사유
  • 응답결과 미반환 : 고객사 서버가 웹훅 수신 후 응답결과를 반환하지 않는 경우입니다.
  • Response Body 형식 불일치 : 응답 결과의 형식이 팝빌에서 요구한 형식과 일치하지 않는 경우입니다.
  • HTTP 통신 오류 : 네트워크 문제, 서버 다운, 연결 오류 등의 이유로 HTTP 통신이 실패한 경우입니다.
  • 기타 : 위에서 언급된 사유 이외의 실패 건입니다.

※ 고객사 시스템 정상화 이후 팝빌 사이트에서 웹훅을 재실행하여 다시 전송 받을 수 있습니다.

Webhook 실행내역 확인

고객사는 전송 받은 웹훅 처리결과를 팝빌에 HTTP Response로 반환합니다. 팝빌은 고객사가 반환한 결과값을 바탕으로 성공 여부를 확인합니다. 성공을 제외한 모든 응답은 팝빌에서 실패로 간주하며 재시도 합니다.

설정 경로

팝빌 테스트 사이트(test.popbill.com) 로그인 > API 상품 선택 > Webhook 관리 > 실행내역 메뉴로 이동

팝빌은 테스트와 운영 환경이 모두 독립적으로 구성되어 있기 때문에 각 환경의 설정이 호환되지 않습니다.
운영전환 이후 Webhook 실행내역은 팝빌 운영사이트(www.popbill.com) 에서 확인할 수 있습니다.

Webhook 실행내역 확인 페이지