안녕하세요. 카카오 페이 단건 결제를 구현하던 중 궁금한 점이 생겨 문의드립니다.
approve_url 을 프론트 도메인으로 해야하는지 서버도메인으로 해야하는지 궁금합니다. 공식 문서에는 따로 권장방식이 없는 것 같아서 보통 운영환경에서는 어떻게 사용하는지 고민이 되어 글을 남기게 되었습니다.
[프로젝트 환경]
백엔드 서버에서 카카오페이 api 를 활용한 api 를 제작했습니다.
Ready API
POST /kakaoPay/ready
Approve api
GET /kakaoPay/approve
approve_url: 도메인/kakaoPay/approve
이라고 가정했을 때,
두가지 방식으로 구현할 수 있다고 생각했습니다.
-
approve_url 이 프론트 도메인 (example.com/kakaoPay/approve)
프론트에서 Ready API 를 호출 → 카카오 결제 인증 진행 → approve_url로 리다이렉트 → 프론트에서 approve_url 에서 받은 pg_token 을 가지고 Approve API 호출 → 결제 완료 -
approve_url 이 백엔드 도메인 (api.example.com/kakaoPay/approve)
프론트에서 Ready API 를 호출 → 카카오 결제 인증 진행 → approve_url이 백엔드 도메인이라서 리다이렉트되면서 동시에 Approve API 호출 → 프론트 단에서 api 호출 json 응답이 보여지지않도록 Approve API 호출 시 프론트 결제 완료페이지로 리다이렉트되도록 api 구현 → 결제 완료
제가 생각했을 때 두번째 방식으로 하게된다면, 프론트에서 ready api 만 호출해도 된다는 점에서 좋아보이는데 정석적인 방법은 1번인 것 같다는 생각이 듭니다. 보안적으로는 어떤게 더 좋은 지도 잘 모르겠습니다…
관련하여 조언 주시면 감사하겠습니다 !
감사합니다.
