본문 바로가기
code.camp

결제 프로세스, imp_uid, 아임포트 웹 훅 노티피케이션

by jyamin 2021. 8. 11.
728x90

8/11

결제 프로세스

최종적으로 카드결제를 진행하기 위해서, 수많은 카드사 앞단에서 결제를 처리해주는 PG(Payment Gateway)사가 무엇인지 알아야 한다.
이러한 각각의 PG사와 계약해서 결제를 처리해야 하는데, PG사 마다 결제모듈 연동 방식이 모두 다르다. (설명서도 굉장히 복잡하고, 내용도 많다.)
이렇게, 여러 PG사들의 앞단에서 복잡한 연동을 대신 해주고 있는 서비스가 바로 "아임포트" 서비스.

아임포트를 연동하면 결제하는 화면이 나온다.
여기서 결제를 하게되면, 결제ID(imp_uid)라는 데이터를 받게끔 되어 있다.
이 imp_uid를 Backend에 전송하여 데이터베이스에서 결제 정보를 관리할 수 있도록 만들었다.
그런데, 무통장입금(가상계좌)을 하거나, 모바일에서 결제를 하는 경우에는 현재 페이지를 잃어버릴 수 있으므로 imp_uid를 받을 수 없다.
그래서 존재한 것이 "아임포트 웹 훅 노티피케이션"
여기에 Backend-API를 rest방식으로 하나 만들고 API 주소를 입력해 놓으면,
아임포트에서 결제가 완료/취소되었을 때, 무통장입금에 성공했을 때 등 아임포트가 Backend-API로 결제내역을 보내준다.
이를 받은 api는 데이터를 정리해서 데이터베이스에 저장하도록 만들어 놓으면 된다.(백엔드 개발자의 역할)

아임포트 서비스를 이용하는 방법은 아임포트, PG사 모두 계약을 진행(1주일)하고, 결제관련 페이지, 결제에 필요한 API 등을 개발한다.
이후에 결제 심사를 받기 위한 가이드 설명서를 PG사에 보내주면, 카드사 심사가 2주일간 진행된다.
이후에 보증보험에 가입하고, 아임포트에서 테스트모드를 해지하게되면 실 결제가 이루어지게 된다.
여기까지가 전체적인 결제 프로세스.

사용자가 아닌 개발자의 입장에서 결제 시스템은 굉장히 복잡하다.
단지, 결제만 신경써야 하는 것은 아니다.
취소, 부분취소, 무통장입금, 정기결제 등등 생각해야할 부분이 굉장히 많다.
(이러한 기능을 처리하기 위한 각각의 API, 시각적으로 보여줄 각각의 페이지 등)
결제가 시스템에 포함되어야 한다면 최소한 1~2달은 물리적인 시간이 소요됨을 인지해야 한다.

프로젝트에 적용하기위해 필요한 API 4개.

  • 결제(포인트충전)하기: createPointTransactionOfLoading                     =>   로그인(accessToken) 필요
  • 유저정보 확인하기     : fetchUserLoggedIn                                                    =>   로그인(accessToken) 필요
  • 중고상품 구매하기     : createPointTransactionOfBuyingAndSelling.  =>   로그인(accessToken) 필요
  • 중고상품 목록보기     : fetchUseditems                                             =>   비회원 가능(buyer 있으면 판매완료 / 없으면 판매중)

 

결제 아이디, 키
카드번호
Rest API
정기결제
무통장 입금, 가상계좌
script를 추가한다

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.1.8.js"></script>

 

결제 요청 추가한다
실명인증

 

gql

 

구매할때는

이거!!!!!!!!

 

buyer에 뭐가 있으면 판매가 된 상태
없으면 판매가 안된상태

 

구매

바이어에 정보가 들어온다.

Comming soon....................

728x90

댓글