- 📌 PG사, 카드사 프로세스 이해
- 📌 결제솔루션( 아임포트(포트원), 부트페이 ) 이해
- 📌 결제의 종류 및 결제 계약과 처리과정의 이해
- 📌 결제의 종류 및 결제 계약과 처리과정의 이해
- 📌 포트원 결제 프로세스( imp_uid의 이동 흐름 )
- 🌈 오늘 하루
우리가 옷을 인터넷으로 구매할 때, 어떻게 결제가 이루어 지는지 한 번 살펴보자!!
구매자가 구입할 옷에 대한 정보와 금액을 판매자에게 전달
판매자는 전달받은 금액을 PG사에게 결제해줄 것을 요청
PG사는 요청받은 정보를 은행사에게 다시 결제 요청
은행사는 요청받은 금액을 구매자의 계좌에서 출금 후 PG사로 전달
PG사는 판매자에게 금액을 전달 (일정량의 수수료를 제외)
판매자는 금액 확인 후, 구매자에게 옷을 배송
일반적으로 위의 프로세스를 통해 결제가 이루어진다.
여기서 PG란 Payment Gateway의 줄임말로 구매자와 판매자 사이에서 이루어지는 결제를 안전하게 완료될 수 있도록 대행해주는 역할을 담당하는 회사이다.
개발자가 직접 결제 프로세스를 적용하는 것은 매우 힘들고 잔인한 과정이 될 수 있다.
왜냐하면, 결제 연동 시스템을 직접 구현하기 위해서는 아래와 같은 과정을 거쳐야 하기 때문이다.
이러한 과정은 최소 2주 이상 매달려야 구현이 가능한 수준이다.
또한 PG사마다 적용하는 모듈이 다르기 때문에 기존에 사용하던 PG사를 옮기게 되면 결제 연동 시스템을 다시 구축해야 하는 문제가 발생할 수 있다.
이때, 이러한 복잡하고 불편한 과정을 대신 해결해주는 결제솔루션인 결제 외부 API가 있다.
결제 솔루션의 예로는 iamport, 부트페이 등이 있다.
아임포트(I'mport)/포트원(PortOne)
는 개발환경과 상관없이
원하는 PG사와의 결제시스템을 연결시켜주는 결제 API 서비스이다. (결제 솔루션)
실제로 포트원이 제공하는 API( 결제 API, 결제취소 API 등 )를 사용하면
PG사와의 연결 과정은 모두 포트원이 대신 처리해주기 때문에
복잡한 결제환경을 직접적으로 구현할 필요가 없어진다.
만약 걀제 기능을 만든다고 할 때, 간단하게 생각할 수도 있다. 하지만 실제로 결제 기능을 온전히 만들어내고 작동시키기 위해서 많은 시간과 노력이 필요하다.
위의 그림을 보게되면 전체적인 결제 기능들에 대해 간략하게 나타낸 그림이다.
생각보다 결제 기능을 만들기 위해 고려해야하는 사항들이 많다는 것을 그림을 통해 알 수 있다.
예를 들어, 한번만 결제하는 것인지, 정기적인 결제인지, 무통장 입금인지 등등 각각에 상황, 분기에 따라 달라지는 기능들을 모두 구현해야한다.
또한, 구현에서 끝나는 것이 아니라 모든 기능은 서로 연결이 되어야 한다.
즉, 이러한 API들을 만들고 연결하는데 많은 시간이 필요하며, 기능 개발이 완료되면 실제 정산을 받기 위해 PG사와 카드사의 검수과정이 필요하다.
이러한 모든 과정을 처리하는데 최소 2~3달의 시간이 걸리게 된다.
따라서 결제솔루션을 사용하더라도 결제 기능을 절대 쉬운 일이 아니다.
포트원을 예시로 들어 결제솔루션을 통한 결제 프로세스에 대해 알아보자!!
브라우저에서 결제하기 버튼을 클릭하면 프론트엔드에서
포트원
에 Rest API로 결제를 요청한다.포트원은 PG사에 결제를 요청한다.
PG사는 카드사에 결제를 요청한다.
결제가 다 되면, 포트원이 결제건에 대한 ID값을 보내준다. 이것을
imp_uid
라고 한다.프론트 엔드는 받은 imp_uid를 백엔드에 건내준다.
백엔드는 DB에 결제 정보와 함께 imp_uid를 저장한다.
오늘은 결제에 대해 학습을 하였다. 결제는 돈과 관련된 민감한 부분이기 때문에 생각보다 프로세스가 복잡하고 어려웠다. 물론 결제솔루션을 활용하게 된다면, 상대적으로 손쉽게 구현할 수 있지만, 이 역시 실제로 구현하게 된다면 굉장히 오랜 시간이 필요하다는 것을 알게 되었다. 따라서 서비스를 만들때 결제에 대한 시간을 넉넉히 잡아야 할 것 같다. 단순이 개발만 끝낸다고 서비스가 작동하는 것이 아니기 때문이다.