카카오페이 단건 결제 API 탐구🔍 스테이징 서버, API, 그리고 RESTful API 2탄 | 코드스테이츠 PMB 17기 W7D3
[ 본 포스팅은 PC 환경에서 보시길 권장합니다 ]
오늘은 배운 내용에 따라 카카오페이의 API를 한 번 살펴봤다!
그리고 '단건 결제' 기능을 중심으로 API의 기능과 구조를 정리해보았다.
카카오페이 (Kakao Pay)
카카오는 2014년 국내 최초 간편 결제 시스템인 카카오페이를 구축했다. 그리고 지금은 카카오톡 송금 서비스, 대출 비교 서비스, 카카오페이 증권 및 펀드 상품, KP보험 상품 등을 제공하고 있다. 카카오톡을 이용하는 이용자라면, 카카오페이도 어렵지않게 이용해봤을 것이다. 카카오페이 API는 실물 카드나 현금 없이도 PC와 모바일 웹, 모바일 앱에서 손쉽게 결제하는 기능을 제공한다. 사용자들은 별도의 앱을 설치하지 않고 카카오톡에서 비밀번호 하나로 편리하고 안전하게 결제할 수 있다. 톡방에 있는 친구들끼리 정산하기도 편리해서, 개인적으로 정산할 때 많이 사용하고 있고, 또 카카오톡 선물하기를 자주 사용한다. 카카오페이는 다른 업체와 제휴도 많이 맺고 있어서, 결제 시 적립 혜택, 5천원 할인 혜택을 제공하고 있다.
결제가 편리한 카카오페이, '단건 결제' API의 기능으로는 어떤 것이 있을까?
카카오페이 '단건 결제' 오픈API
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
카카오 개발자 페이지에는 다양한 개발 관련 문서를 볼 수 있었다. 단건 결제와 관련된 내용도 역시 여기서 찾아볼 수 있었다.
오늘 학습 때 배운 'REST API'가 나와서 반가웠다. 카카오 API는 대부분의 기능을 'REST API'로 제공한다고 한다. REST API는 자원을 이름으로 구분하고 CRUD 요청을 보내는 방식으로, 데이터의 속성에 따라 이름을 정해놓고 그 이름을 가지고 요청을 하는 방식이다.
* CRUD 요청 형식! 잊지 않으셨죠?
Create(생성) : POST
Read(읽어오기) : GET
Update(변경) : PUT(전체)/PATCH(일부)
Delete(삭제) : DELETE
카카오페이의 단건 결제도 역시 REST API로 제공되고 있었고, 단건 결제를 위해서는 크게 3개의 단계에 대한 작업이 필요한 것으로 보였다: 결제준비 >> 결제 요청 >> 결제 승인
Step1. 결제준비 :
가맹점 코드(CID), 가맹점이 부여한 주문번호 partner_order_id, 상품 총액 total_amount 등 상세 정보를 카카오페이 서버에 전달하고 결제 과정을 시작하는 단계이다. 상세 정보를 어드민 키를 헤더에 담아 파라미터 값을 통해 POST로 요청하면, 서버는 TID라고 하는 결제 고유 번호를 저장하고, 클라이언트는 사용자 환경에 맞는 URL로 리다이렉트한다.
필수 파라미터 값들을 잘 체크해둘 필요가 있겠다. 상품명, 수량, 부가세, 금액 등 파라미터 값으로 요청하면 응답받는 값, 예컨대 결제 고유번호, 클라이언트 유형, 운영체제, 결제 요청 시간 등을 살펴볼 수 있다. 클라이언트, 서버, 그리고 API의 작동 방식에 대해 조금 이해하고 문서를 확인하니까, 확실히 좀 이해할 수 있는 부분이 많아진 것 같다!
Step2. 결제 요청 :
결제 대기 화면으로 이동하고, 결제 준비 API의 응답으로 받은 Redirect URL 중 사용자 접속 환경에 맞는 URL을 선택해 리다이렉트를 실행하는 단계이다. 요청 성공은 approval_url로 리다이렉트, 요청 취소는 cancel_url로 리다이렉트, 요청 유효 시간(15분) 경과는 fail_url로 리다이렉트 된다.
이후 클라이언트에는 결제 대기 화면이 노출되며, 사용자는 카카오톡 결제 화면에서 결제 수단을 선택할 수 있다. 사용자가 카카오톡 결제 화면에서 결제수단을 선택하고 비밀번호 인증까지 마치면, 결제 대기 화면은 결제 준비 API 요청 시 전달 받은 approval_url에 pg_token 파라미터를 붙여 리다이렉트한다.
Step3. 결제 승인 :
결제 요청에 성공했다면 결제 승인 API를 호출하여, 응답을 받으면 결제 결과를 저장하고 클라이언트로 사용자에게 결제 완료 화면을 보여주는 단계이다. 결제 승인 API의 동작에 따라 사용자는 결제 완료 메시지를 받게 된다.
카카오페이 API는 실제 제휴를 맺기 전 'REST API 테스트 도구'로 테스트가 가능하여, REST API 테스트 도구를 사용하여 간편하게 요청 및 응답 구성을 확인할 수 있다. 프로덕트에 카카오페이 결제 수단을 추가하기 전에 오픈 API를 활용하여 테스트해보는 것도 좋을 것 같다.
-끝-
그럼 내일 만나요!