카카오페이 연동 과정 중 질문 드립니다

단건 결제 프로세스중에 이해되지 않는 부분이 있어서 문의 드립니다.
단건 결제 프로세스의 경우

  1. 결제 준비
  2. 결제 승인
    의 단계로 구분되어 진행 되어 보입니다.

먼저 POST /v1/payment/ready를 통해 결제 요청 시, 응답과 함께 tid /partner_order_id / partner_user_id 등을 DB에 저장을 하고, apprval_url을 통해 콜백을 받아, 쿼리스트링으로 넘어온 pg_token과 함께 결제 승인 API를 요청해야 하는것 같은데요.
결제 승인을 위해서는 tid / partner_order_id / partner_user_id 등의 필수값들이 존재하는데, 콜백으로 응답을 받게 되었을 때,
pg_token만으로 결제 준비에서 생성된 결제건과 어떻게 매칭을 시켜야 할지 모르겠어서 질문 드립니다.

정리하면 결제 준비 단계에서 tid / partner_order_id / partner_user_id를 DB에 저장한다고 해도, apprval_url을 통해 콜백으로 떨어질 때, 알 수 있는 정보는 pg_token 뿐인데, 어떻게 결제준비 단계와 매칭을 시켜 tid / partner_order_id / partner_user_id를 꺼내 써야 할지 모르겠습니다.

답변 부탁드리겠습니다.

1개의 좋아요

해당 이슈에 대해서 데브톡에 저와 같은 문의를 남기신분이 꽤 있으신것 같아 제가 사용한 방법을 공유드립니다.
저와 비슷한 이슈에 대해서 질문한 문의글들 중에서 카카오페이 측에서 답변 달아주신것을 보고 힌트를 얻어 처리 했습니다.

먼저 결제 준비 단계에서 내부적으로 partner_user_id와 partner_order_id, 그리고 approval_url을 저희가 세팅을 할 수 있는데요.
필요한 값을 실어서 결제 준비 요청을 보낼 때, approval_url에 파라미터로 나중에 식별 할 수 있는 데이터를 넘겨줬습니다. 예를 들면 회원 id를 approval_url의 파라미터로 실어서 보내준 다음 응답에 대한 결과로 tid가 넘어오게 되는데, 이때 tid / partner_user_id와 partner_order_id 를 DB에 저장하였습니다.
그런 다음에 approval_url로 콜백을 받으면 아까 위에서 파라미터로 보낸 회원 id를 식별 키로 DB에서 partner_user_id와 매칭하여 partner_order_id, tid를 찾아 또다른 콜백 파라미터로 넘어온 pg_token을 실어서 결제 승인 API를 요청 하였습니다.

  • partner_order_id나 tid를 파라미터로 보내는것은 보안상의 이슈가 있을 것 같아. 가장 보안적으로 이슈가 적어 보이는 회원 id를 이용하였습니다. 혹시나 제가 사용한 방법이 문제가 된다면 알려주시고, 문제가 없다면 다른분들에게 도움이 되셨길 바랍니다.

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

답변이 늦은점 양해부탁드립니다.
관련내용은 동일문의하신분이 존재하여 같이 남겨드렸습니다.
참고부탁드립니다.

감사합니다.