WorkHard/Project

[Project] Java Spring 카카오페이(1)

코딩공대 2023. 2. 3. 17:59
728x90

카카오페이 구현하면서 진짜 엄청 많은 오류를 만났다....정리를 더 잘해놓을껄....후회된다..
진짜 너무너무 매일 새벽까지 구현하는데 잘안되서 블로그에 신경을 하나도 못써버렸다....
지금이라도 더 까먹기전에 써보자!

그리고 내생각엔 처음 구현해보는 입장에서 카카오디벨로퍼만 보고는 구현하기 힘들꺼 같다는 생각을 엄청 많이했다.
물론 필요하지만..

1. 카카오페이 API 이해하기

  • 결제 프로세스
    • 백엔드 서버에서 결제 요청 상세 정보를 캍카오페이 서버에 전달해준다.
    • 카카오페이 서버에서 정보를 받아 사용자 인증한다.
    • 백엔드 서버에서 사용자 인증 후 결제 승인 상세 정보를 카카오페이 서버에 전달
    • 카카오페이 서버에서 최종 결제 처리 완료

2. 카카오페이 결제 구현과정

"클라이언트 - 서버 - 카카오" 값을 주고받는 과정"

  • 결제 과정 3가지
    1. 결제 요청 준비
    2. 결제 요청
    3. 결제 승인
  • "클라이언트 - 서버 - 카카오" 값을 주고받는 과정" 설명
    1. 클라이언트에서 서버로 주문정보를 POST 한다.
    2. 서버는 Controller에서 그 값을 받아 카카오 승인요청 URL로 보내준다.
    3. 카카오는 승인과 동시에 다음 결제과정의 URL과 tid(카카오 결제코드)를 서버로 던져주고 서버는 클라이언트에 URL을 보내준다.
    4. 클라이언트는 그 URL로 QR코드 결제 화면에 접근해 결제 요청을한다.
    5. 결제처리가 되면 카카오에서 우리 서버 Controller의 결제 URL로 Token값을 보내준다.
    6. 서버는 그 토큰과 tid로 결제 승인을 요청하고 결제승인 정보를 받아온다.
    7. 주문성겅페이지 URL을 클라이언트에 보내고 클라이언트는 그 페이지를 서버에 요청한다.
    8. 서버가 주문완료 페이지를 클라이언트에 보내준다.(주문완료 페이지가 없으면 html로 간단하게 만들어서 보내준다.)
지금은 이 과정들이 이해가 가는데 처음 봤을때는 이게 무슨소린가..했다..

3. 카카오디벨로퍼로 보는 정보들(코드정리는 뒤쪽에 한번에)

  • 여기서 카카오페이 결제를 시작하기 위해 상세 정보를 카카오페이 서버에 전달하고 결제 고유 번호인(TID)를 받는다.
  • ADMIN_KEY를 헤더에 담아 파라미터 값들과 함께 POST를 요청한다.
이것도 역시나 처음 봤을때 이게 무슨소린가..했다..
  • 결제 준비 Request 파라미터에 담을 값들(Required에 O 표시는 필수로 들어가야 한다.)

  • 결제 준비 Response에 담겨질 값들

이렇게 요청을 보내면 카카오에서 response에 지정한 값들을 보내준다.
나는 여기서 tid값과 next_redirect_pc_url값을 받아온다.
next_redirect_pc_url을 누르면 QR코드가 온다.

  • 사용자가 결제수단을 선택하고 인증을 한 후 최종적으로 결제 완료 처리를 하는 단계이다.
  • 결제 승인 API를 호출하면 결제 준비 단계에서 시작된 결제건이 승인으로 완료처리 된다.

 

  • 결제 승인 Request 파라미터에 담을 값들(Required에 O 표시는 필수로 들어가야 한다.)

  • 결제 승인 Response에 담겨질 값들


 

코드 구현 내용은 2편에 정리하자.

어쨌든 너무너무 어려웠던 카카오페이 테스트 결제 구현이지만

성공해서 너무너무 뿌듯하고 이걸 내가 해내다니!라는 자신감을 얻고 갑니당!