KaKao 결제 API 연동

박준수·2023년 2월 17일
1
post-thumbnail

상품 결제를 할때 카카오 결제 API를 연동하여 단건 결제로 개발해보기로 했다.
단건 결제는 한 번의 결제로 지불이 완료되는 구매건에 해당하며, 정기적으로 여러 차례 결제가 발생하는 결제인 정기 결제와 다릅니다. 일반적인 상품 판매나 비용 지불 시 단건 결제를 사용합니다.

  • 단건 결제 시 가맹점 코드(CID)가 필요합니다. 테스트 결제는 가맹점 코드로 'TC0ONETIME'를 사용합니다. 실제로 결제하려면 카카오페이와 제휴를 맺어 가맹점 코드를 발급 받아야 합니다.

결제 준비

  • 카카오페이 결제를 시작하기 위해 상세 정보를 카카오페이 서버에 전달하고 결제 고유 번호(TID)를 받는 단계입니다. 어드민 키를 헤더에 담아 파라미터 값들과 함께 POST로 요청합니다.
  • 요청이 성공하면 응답 바디에 JSON 객체로 다음 단계 진행을 위한 값들을 받습니다. 서버(Server)는 tid를 저장하고, 클라이언트는 사용자 환경에 맞는 URL로 리다이렉트(redirect)합니다.
  • kakao developers의 내 애플리케이션에서 내 adminkey를 발급받고 허용 IP주소 역시 설정해줘야한다.
  • request prameter에 다음 0 표시는 필수로 집어 넣어야함

결제 요청

결제 준비 API의 응답으로 받은 Redirect URL 중 사용자 접속 환경에 맞는 URL을 선택해 리다이렉트를 실행합니다. 이후 클라이언트에는 결제 대기 화면이 노출되며, 사용자는 카카오톡 결제 화면에서 결제 수단을 선택할 수 있습니다. 이 프로세스는 카카오페이의 서비스 화면에서 일어나기 때문에 가맹점으로 다른 요청을 보내지 않습니다.

  • 우리 프로젝트는 웹 페이지에 QR코드를 통해 결정하는 기능을 사용하기 위해 next_redirect_pc_url을 사용하였다.

결제 승인

사용자가 결제 수단을 선택하고 비밀번호를 입력해 결제 인증을 완료한 뒤, 최종적으로 결제 완료 처리를 하는 단계입니다. 결제 승인 API를 호출하면 결제 준비 단계에서 시작된 결제건이 승인으로 완료 처리됩니다. 결제 승인 요청이 실패하면 카드사 등 결제 수단의 실패 정보가 필요에 따라 포함될 수 있습니다.

  • pg_token : 결제승인 요청을 인증하는 토큰

    • 사용자 결제 수단 선택 완료 시, approval_url로 redirection해줄 때 pg_token을 query string으로 전달
    def get_token():
    
        token = request.args.get("pg_token")
        return token

    다음 함수로 받아옴

결제 취소

  • 결제 고유번호인 tid에 해당하는 결제건에 대해 지정한 금액만큼 결제 취소를 요청합니다. 앱 어드민 키를 헤더에 담아 파라미터의 값과 함께 POST로 요청합니다.
  • 성공 시 응답은 바디에 JSON 객체로 결제 취소 내역을 포함합니다. 실패한 경우에는 카드사 등 결제 수단의 실패 정보가 필요에 따라 포함될 수 있습니다.

결제 실패

결과


참고 : 카카오 단건 결제 API//예제 1//예제 2//예제 3

profile
방구석개발자

0개의 댓글