POPBill Developers
가이드

Webhook 개요

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

팝빌 웹훅 프로세스

개발 가이드

아래의 코드를 참조하여 POST Request Body 처리 기능을 추가합니다.
(콜백 URL 주소를 http(s)://웹서버URL/pbconnect 로 가정하여 설정한 샘플코드입니다.)

// $DOCUMENT_ROOT/pbconnect.php

<?php

    ini_set("allow_url_fopen", true);

    // 팝빌 Webhook Request Body
    $json_string = file_get_contents('php://input');

    // Webhook 메시지 Json parse
    $connect_message = json_decode($json_string, true);

    // 추가적인 Webhook 메시지 항목은 하단의 [Webhook 메시지 구성] 참조
    $connect_message['eventType']; // 이벤트 유형
    $connect_message['eventDT']; // 이벤트 실행일시

    // Webhook Request에 대한 응답 메시지 반환
    echo "{'result':'OK'}";
?>

응답결과

프로그램 공급사는 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 실행내역]