결제 기능 고민과 선택 / portone, 범용성
프로젝트를 처음 설계 했을 때, 결제 기능을 꼭 추가해야 겠다는 생각이 있었습니다. 그렇다면 결제 기능은 어떻게 추가해야 할까?
위 이미지는 google 검색창에 'spring 결제 구현'이라고 작성한 결과입니다. 대부분의 사람들이 Iamport(현 portone)를 통해 결제 기능을 구현하는 것을 알 수 있습니다. 그 이외에도 결제를 구현할 수 있는 방법은 카카오페이나 토스페이먼츠 등 다양합니다. 그러나 저는 portone을 통해서 구현하기로 했습니다. 이유는 앞으로 실무를 경험할 것을 생각해 봤을 때, portone의 범용성이 더 높기 때문이라고 생각했기 때문입니다.
기업에서 카카오페이나 토스페이먼츠 등은 자체적으로 가지고 있는 결제 api지만, portone의 경우 자체적으로 결제 로직을 갖고있지 않은 기업들을 위한 서비스기 때문에 모든 PG사와 연결을 해줍니다. 이러한 범용적인 측면에서 저는 portone을 통해 결제 로직을 구현하기로 했습니다.
portone
그렇다면 portone은 무엇일까? portone은 여러 PG들을 연결할 수 있게 도와주는 서비스입니다. 여기서 PG는 PaymentGateway의 줄임말로 온라인으로 결제 처리를 대행해 주는 서비스입니다. 또한 portone은 결제를 도와주는 라이브러리를 다양한 언어에서 불러올 수 있도록 지원해 주고, portone 서비스 내에서 생성한 가맹점을 통해서 결제 로직을 다루기 때문에 가맹점의 정산과 같은 기능도 client를 통해 지원해 줍니다. 예를 들어 아래 이미지를 보면 내 가맹점의 테스트 결제 내역을 편리하게 조회하도록 클라이언트를 제공해 줍니다.
마지막으로는 portone의 경우 공식문서를 통해 api를 요청하고 로직을 처리하는 내용이 잘 나와있기 때문에 구현하기에도 편리했습니다.
https://developers.portone.io/docs/ko/console/guide/readme
'개발 > withfriend 🫱🏼🫲🏽🥕' 카테고리의 다른 글
[개발 이슈] 포인트 출금 (0) | 2023.11.01 |
---|---|
[개발 이슈] 사용자 간 거래 → point로 구현하다 (0) | 2023.11.01 |
[개발 이슈] 코드에서 민감한 정보는 어떻게 다루지? / application.properties .yml (0) | 2023.10.31 |
[개발 이슈] 서비스가 이벤트를 발생시키는 주체가 어떤 사용자인지 어떻게 구분하지? / access token, session, refresh token (0) | 2023.10.30 |
[개발 이슈] 사용자 경험을 고려한 로그인 구현 / OAuth (0) | 2023.10.30 |