카카오페이 기능 구현 관련 문의 건

안녕하세요,
카카오페이 온라인 결제 API 단 건 결제(결제 준비 및 승인) + 카카오페이 데모로 결제 기능 구현중입니다.
진행 중 관련 문의사항 아래와 같이 정리드리오니 확인 후 답변 부탁드리겠습니다. :slight_smile:

  1. 결제창 실행 결과에 따라 approve/cancel/fail URL로 이동할 수 있도록 개발자센터 플랫폼 내 설정해두었습니다. 이때 카카오페이 서버에서 302 코드와 함께 해당 URL로 리다이렉트한 경우, ‘웹 브라우저에서 자동으로’ 동일한 엔드포인트를 가진 GET 메서드를 서버에 요청하는것이 맞을지요?

1-1. 리다이렉트 이후 웹 브라우저가 GET 요청을 자동으로 진행한다면, 프론트는 결제 승인에 대한 GET 요청을 생략해도 되나요? '/approve/{pg_token}'과 같이 서버에서 카카오페이에서 리다이렉트한 URL과 같은 엔드 포인트를 가지고 있다면 해당 부분은 웹브라우저에서 자동으로 처리할 수 있는 부분인지 궁금합니다. + 카카오 로그인 기능도 구현 중이라 동일하게 적용되는지도 궁금합니다.

1-2. 참고로 결제 취소(cancel) 및 실패(fail)의 경우, 프론트 코드가 없어도 웹 브라우저가 자동으로 GET 요청을 서버에 주는 점을 확인했습니다. 이 경우에만 가능한지요?

  1. 사용자의 결제 행위에 중점을 둔 서비스라 '결제 중’에 발생한 결제 오류 건에 대해서만 처리할 예정입니다.
    즉 결제 후 결제 취소 또는 환불에 대한 기능 처리는 생략할 예정인데, 이 경우 cancel와 fail을 분기하는 케이스가 어떻게 나뉠지요? 몇몇 시나리오로 테스트한 결과, cancel의 경우만 확인되는데 저희 서비스에서는 fail이 발생하는 대표적인 케이스가 어떻게 되는지 궁금합니다.

2-1. 또한 분기 처리를 HTTP status code로 처리한다면
리다이렉트(302) / 성공(200) / 실패(200 외) 이렇게 처리하면 될지요?

감사합니다.

안녕하세요. 카카오페이 입니다.

approve 와 approval_url에 혼동하신듯 하여,
결제전반적인 프로세스에 대해 안내드립니다.

  1. 가맹점 → 카카오페이 결제준비(ready) 요청
  2. 카카오페이 → 가맹점 pc/mobile/app 별 redirect_url 응답
  3. 사용자환경에 따라 redirect_url을 오픈하여 사용자가 카카오페이 결제수단으로 이동됨
  4. 결제인증후, approval_url + pg_token 로 redirect
  5. 가맹점 → 카카오페이 결제승인(approve) 요청
  6. 카카오페이 → 가맹점 승인응답

1-1 redirect 되는 approval_url은 가맹점페이지입니다. 해당 페이지에서 쿼리스트링으로 받은 pg_token 값 + tid로 최종 승인요청(approve)를 해주시는 구조입니다.

1-2 cancel_url, fail_url은 결제취소(환불), 실패의 의미가 아니며,
사용자가 3단계진행중, 변심하여 결제를 더이상 진행하고자 하지 않을때, 브릿지페이지(카카오페이 결제수단으로 이동하는 단계인 “다음” 화면이 뜨는곳)에서 “결제취소” 또는 "X"버튼으로 결제를 더이상진행하지 않을수 있습니다. 이경우 cancel_url로 redirect 되므로 그에따른 처리를 해주시면됩니다.
fail_url은 사용자가 결제수단으로 진입후 30분간 아무러 동작을 하지 않을경우 발생되는 경우이기에 거의 발생되지 않습니다.
다만 발생할수 있는 소지가 있으므로 그에따른 처리를 해주면됩니다.

  • 결제 취소는 cancel api가 별도로 존재합니다. 승인된거래에 대해 전체취소/부분취소를 진행하는 api입니다. cancel_url과는 다릅니다.

2-1 리다이렉트에 대한 분기처리는 status code로 하는것이 아닙니다.
redirect 페이지는 결국 가맹점의 페이지입니다. 즉, 해당 페이지가 호출되는 것이기 때문에 그에따른 처리를 해주시면됩니다.
카카오페이 api인 ready, approve, cancel은 http status code로 해주시면되며, 200은 성공. 200외에는 실패로 판단하여 body값을 처리해주시면됩니다.

감사합니다.