웹훅 연동하기
웹훅 연동을 통해 정확한 결제 결과를 처리할 수 있습니다.
Last updated
Was this helpful?
웹훅 연동을 통해 정확한 결제 결과를 처리할 수 있습니다.
Last updated
Was this helpful?
Deprecated
이 문서는 더 이상 관리되지 않습니다.
를 이용해주세요.
포트원 서버에 저장된 결제 정보를 가맹점 서버에 동기화하고 네트워크 불안정성을 보완하는 방법을 설명합니다.
특정 이벤트가 발생하였을 때 타 서비스나 응용프로그램으로 알림을 보내는 기능입니다.
웹훅 제공자는 특정 이벤트가 발생하면 HTTP POST
요청을 생성하여 등록된 callback URL로 이벤트 정보을 보냅니다. 주기적으로 데이터를 폴링(polling)하지 않고 원하는 이벤트에 대한 정보만 수신할 수 있어 웹훅은 리소스나 통신측면에서 효율적입니다.
웹훅 연동은 필수적입니다. Wi-Fi 연결 끊김, 브라우저 자동 새로고침 등의 이유로 클라이언트에서 결제 완료에 대한 응답을 받지 못하는 경우가 발생할 수 있습니다. 이런 경우를 대비해서 포트원 서버에서 가맹점 서버로 웹훅 이벤트를 발송하여 누락없이 결제 정보를 동기화할 수 있도록 합니다.
포트원 웹훅은 다음과 같은 이벤트에 발생됩니다.
결제(예약 결제 포함)가 승인되었을 때(모든 결제 수단) - (status : paid
)
가상계좌가 발급되었을 때 - (status : virtual_account_issued
)
가상계좌에 결제 금액이 입금되었을 때 - (status : paid
)
관리자 콘솔에서 결제 취소되었을 때 - (status : cancelled
)
결제(예약 결제 포함)가 실패했을 때(status: failed
)
웹훅수신을 위한 URL 설정은 두가지 형태로 지원됩니다.
Content-Type 은 application/json
또는 application/x-www-form-urlencoded
으로 지정할 수 있습니다.
호출 테스트 버튼을 통해 올바른 URL과 Content-Type을 지정했는지 테스트할 수 있습니다.
포트원 SDK의 PortOne.requestPayment()
함수 파라미터 중 noticeUrls
를 통해 관리자콘솔에서 설정한 웹훅 수신 URL을 덮어쓸 수 있습니다.
웹훅 POST
요청의 본문은 다음의 정보를 포함합니다. 가맹점 서버는 아래 정보를 수신하고 포트원 서버에서 결제 정보를 조회하여 검증 및 저장할 수 있습니다.
tx_id
: 결제 트랜잭션 ID
payment_id
: 주문 ID
status
: 결제 상태
웹훅을 통해 결제 정보를 통보받을 URL을 설정하려면 포트원 관리자 콘솔 내 탭을 선택합니다. Endpoint URL
항목에 웹훅으로 전송될 데이터를 수신할 URL주소를 기재합니다.
기본적으로 포트원 서버에서 웹훅이 호출되면 가맹점 응답을 기다리지 않고 클라이언트에 302 redirect 응답을 보내기 때문에 결과 도달에 대한 순서를 보장하지 않습니다. 다만 가맹점 요청이 있을 경우 webhook 호출 이후에 클라이언트에 302 redirect 또는 callback 응답을 보내어 순서를 보장 해드리고 있습니다. 웹훅 우선순위 요청은 로 가맹점 식별코드를 기재하여 요청해 주시면 됩니다.