단건결제 API에 대해서 문의드립니다

카카오페이 단건 결제 샘플 자바코드를 확인해 봤습니다.

  1. tid를 전역변수로 둔 후, 결제 요청시 카카오페이 서버로부터 받은 tid를 저장하고, 결제 승인 요청 시 저장된 tid 값을 보내는데 동시성 상황에서 tid값이 변경될 수도 있는데 실무에서도 이렇게 하시는지 궁금합니다.

  2. 결제 준비 단계에서 TID를 주문 정보와 함께 DB에 저장하고 있습니다.

    카카오페이 QR 기반 결제 흐름에서는 사용자가 결제 인증 완료 후 approval_url로 리다이렉트되는 구조이기 때문에, 일반 API 요청처럼 프론트엔드에서 DTO Body 형태로 데이터를 다시 전달받기 어렵다고 판단했습니다.

    그래서 승인 단계에서는 approval_url의 PathVariable(Query Parameter)로 전달받은 식별자(userId 또는 orderId)를 기반으로 주문 정보를 조회한 뒤, DB에 저장된 TID를 사용하여 approve API를 호출하는 방식으로 구현했습니다.

    이 경우 approval_url을 통해 식별자를 전달받는 방식이 보안상 문제되지 않는지, 실무적으로 일반적인 방식인지 궁금합니다.

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

말씀하신것처럼 approval_url 에 주문정보를 함께 보내 쿼리스트링으로 받는 가맹점들이 존재합니다.

단 approval_url, cancel_url, fail_url 이 255길이를 초과할경우 ready api 요청시 거절이 될 수 있으니 참고하여 진행해주시기 바랍니다.

감사합니다.