javaboiii의 Web

포트원 결제 API - 1

javaboiii 2024. 9. 6. 18:31

결제 API와 결투

 

"포트원을 사용하면 코드를 추가 작성할 필요없이 손쉽게 구현이 가능" 이라는 키워드를 보고

결제 API를 포트원으로 선택함

 

결투 사전 준비

1. 포트원 가입

https://portone.io/korea/ko

 

포트원 | 온라인 비즈니스 성장을 돕는 기업

포트원이 제공하는 단 한 줄의 코드로 세상의 모든 결제를 손쉽게 연동해보세요. PG사 통합결제 연동, 해외결제, 파트너 정산 관리, 결제 애널리틱스, 수수료 혜택까지, 포트원의 맞춤 컨설팅을

portone.io

 

2. 결제 연동

채널 추가 버튼 -> 대행사 선택 -> 모듈 선택

 

3. 채널 추가 세부 사항 작성

(테스트라면 공용 MID 선택)

채널 연동을 완료했다면

6. 좌측 하단 콘솔 가이드 보기 ㄱㄱ

콘솔 가이드가 정말 친절한데

나만 못알아 듣는 느낌

 

본인은 인증 결제를 할거임

 

인증이 필수요소는 아니지만

인증은 결제 시 악서유저가 금액을 바꾸는 행위등을 검사하기 위함

 

사전 준비는 끝

이제부터가 진짜임

 


포트원 결제 예제

1. 포트원 SDK 설치

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- SDK설치 -->
  <script src="https://cdn.iamport.kr/v1/iamport.js"></script>
  <script defer type="text/javascript" src="js/payment.js"></script>
  <title>Document</title>
</head>
<body>
  <button onclick="requestPay()">결제하기</button> <!-- 결제하기 버튼 생성 -->
</body>
</html>

2. 결제 요청하기

 

IMP.init("고객사 식별코드"); // 예: 'imp00000000'

IMP.request_pay(
  {
    pg: "{PG사 코드}.{상점 ID}", // 결제 대행사 코드.상점ID(위에 채널추가 할 때 설정한거)
    pay_method: "card", // 결제 방법
    merchant_uid: `payment-${crypto.randomUUID()}`, // 주문 고유 번호
    name: "노르웨이 회전 의자", // 상품 이름
    amount: 64900, // 상품 가격
    // 여기서부터 필수는 아님
    buyer_email: "gildong@gmail.com",
    buyer_name: "홍길동",
    buyer_tel: "010-4242-4242",
    buyer_addr: "서울특별시 강남구 신사동",
    buyer_postcode: "01181",
  },
  function (response) {
    // 결제 종료 시 호출되는 콜백 함수
    // 인증
    // response.imp_uid 값으로 결제 단건조회 API를 호출하여 결제 결과를 확인하고,
    // 결제 결과를 처리하는 로직을 작성합니다.
  },
);

 

식별 코드는 여기 있음

 

여기까지만 해도 결제 창이 생성되고 결제가 가능

 

결제 흐름은

관리자 패널에서 결제대행사 선택 후 테스트용 결제 서비스 활성화

포트원 SDK를 추가한 다음 자바스크립트 코드를 추가하면됨

 

포트원 SDK가 설치되면 IMP라는 전역변수가 생성되고

이 변수를 통해 포트원과 상호작용할 수 있음

 

가맹점 식별코드를 사용해서 IMP변수를 초기화하고

버튼에 클릭 이벤트를 추가

 

버튼을 클릭하면 IMP.request_pay라는 함수가 호출됨

이 함수는 결제 요청에 대한 모든 옵션이 포함된 구성 객체를 받음

 

필수 적인 옵션으로는

관리자 패널에서 활성화한 결제 게이트웨이인 PG

금액 상품명

주문 고유 id를 전달 --> 주문 고유 id는 백단에서 인증 시 사용됨

 

SDK

SDK는 "Software Development Kit"의 약자로, 소프트웨어 개발자가 특정 플랫폼이나 

애플리케이션을 개발하기 위해 사용하는 도구와 라이브러리의 집합

 

결제 게이트웨이 (PG : Payment Gateway)

'결제를 위한 관문'이라는 뜻

온라인에서 구매자가 카드 결제, 계좌 이체, 간편 결제 등 다양한

결제 수단을 편리하게 이용할 수 있도록 제공하는 역할

결제를 대신 처리해주는 역할을 하기 때문에 '결제 대행사'라고도 불림


이 후에 결제가 완료 되면

인증을 해야됨

인증 결제란

인증 결제는 결제 시 PG사로부터 결제에 대한 인증 결과 수신 이후 해당 인증키로 결제를 요청하는 결제 방식을 지칭.

국내에서 제일 많이 볼 수 있는 결제 방식으로 결제 주문 페이지에서 결제가 요청되면 각 PG사의 결제창이 활성화되고, 그 후 고객이 선택한 카드사에 따른 카드사 전용 결제 모듈에서 인증이 완료되면 해당 인증값을 통해 결제를 요청하는 흐름으로 결제가 진행됨

 

 

참고

https://www.youtube.com/watch?v=JsiTJlLitMI&t=300s

 

난 어려움;

https://sdk-playground.portone.io/

 

PortOne SDK 놀이터

 

sdk-playground.portone.io

 

 

인증은 다음 시간에.