Computer Programming/AI

TIL_PortOne을 이용한 결제 시스템

JYCoder 2023. 12. 6. 00:09

결제 시스템 구현 목적

웹 사이트 기능 중, AI 채팅을 요청하거나 AI Reading 부분에서 문제 생성을 할 때마다 chatGPT 토큰을 사용하게 된다. 일정량의 토큰 이상을 사용했을 경우 요금이 부과가 되는 점을 고려하여 웹사이트의 자체적인 코인을 만들어 chatGPT 토큰을 남용할 수 없도록 기획하였다. 기본으로 제공되는 코인이 부족해진다면 상품 페이지에서 원하는 만큼 코인을 구매할 수 있다.

 

결제 시스템 관련 페이지

  1. 상품 선택 페이지
  2. 장바구니 페이지
  3. 결제 창

 

PortOne

온라인에서 상품을 판매하기 위해서는 결제 서비스가 필요하다. 수많은 은행, 신용카드 회사와 직접 문의하여 결제 수단을 연동하고 발생하는 모든 거래 내역에 대한 승인을 요청할 수도 있지만 매우 복잡한 과정이 될 것이다. 그래서 중간에서 여러 은행과 카드 회사들, 통신 사업자 등을 하나로 통합하여 판매자와 연결을 시켜주는 전자결제지급대행(Payment Gateway) 서비스를 이용하는 것이 편리하다. 이러한 PG의 예로는 KG이니시스, 나이스, NHN KCP, TOSS 등이 있다. 이렇게 다양한 PG사들을 모아서 간단하게 한 번에 제공해주는 서비스가 바로 이번 프로젝트에 사용된 PortOne API이다.

 

PortOne의 장점

  • PortOne의 API 만으로 여러가지 PG사와 결제 수단을 쉽게 도입할 수 있다.
  • 서비스 운영 중 고객의 필요에 맞는 결제 수단을 수정/변경할 때 신규 개발에 대한 부담이 적다.
  • 개발 가이드에 대한 정보가 잘 정리 되어있어 개발이 편리하다.

 

 

Service Architecture

  1. client의 결제 요청
  2. *가맹점 고유 번호**와 결제 예정 금액 값을 backend에서 가져와 client에게 결제 창을 띄어줌
    *가맹점 고유 번호: merchant_uid
  3. 결제 단계(*PortOne 서버 → PG 서버 → 카드사 서버)
    *PortOne이 알아서 PG서버에 결제 요청을 해줌
    (결제 후)
  4. *결제 정보 결과를 PortOne으로부터 받음
    *결제 정보 결과: imp_uid: PortOne의 결제 고유 번호
  5. backend에서 *access token과 결제 고유 번호 값을 PortOne에 보내서 실제로 결제된 값을 받음
    *access token: PortOne api를 통해 imp_uid 값을 보내주고 받은 토큰 값
  6. 결제 예정 금액과 결제된 금액 값이 같으면, ‘결제 완료’
LIST

'Computer Programming > AI' 카테고리의 다른 글

TIL_Channels  (0) 2023.12.08
TIL_장바구니 비움과 주문 내역 저장  (1) 2023.12.08
TIL_Process Flow  (1) 2023.11.23
TIL_Decorator in Python  (1) 2023.11.21
TIL_When to use Redis?  (1) 2023.11.20