토스 결제창 연동하기

Evan Lee ㅣ 2022. 10. 19. 23:07

장바구니를 얼추 끝내고 주문 결제 단계에 도달했다. 그래서 Swagger를 참조해보니

토스 페이먼츠 연동하세연

 

음... 결제같은거 처음이였다. 그래서 일단 공식문서 밖에 답은없다.

https://docs.tosspayments.com/guides/windows/card

 

신용·체크카드 결제창 연동하기 | 토스페이먼츠 개발자센터

결제창에서 카드사를 선택하고 카드사 인증을 거쳐 결제할 수 있도록 연동해보세요.

docs.tosspayments.com

 

이렇게 CDN으로 가져올수도 있고

<head>
  <title>결제하기</title>
  <script src="https://js.tosspayments.com/v1"></script>
</head>
<body>
  <script>
    var clientKey = 'test_ck_D5GePWvyJnrK0W0k6q8gLzN97Eoq'
    var tossPayments = TossPayments(clientKey) // 클라이언트 키로 초기화하기
  </script>
</body>
 

SDK 패키지를 설치해서 사용할 수 있다.  자세한 내용은 아래 링크로 가자 

https://docs.tosspayments.com/reference/js-sdk

 

일반 결제 JavaScript SDK | 토스페이먼츠 개발자센터

토스페이먼츠 일반 결제 JavaScript SDK 사용을 위한 준비와 메서드 사용법, 결제 실패 및 에러 처리 방법을 알아봅니다.

docs.tosspayments.com

 

 

 

 

 

그리고 함수를 만들어서 Required  Params를 넣고  호출해주면 된다.참고로 나는 Toss의 Test Client Key 환경변수로 빼서 가져왔었다. 중간에 뭔가 많이 생략이 되었지만 중요한 것은 아님.

 

 

 

 

 

구현부 코드만 딱 가져와봤다. 

import { loadTossPayments } from '@tosspayments/payment-sdk';

export async function TossPayment(
  orderId: string,   // 백엔드가 뱉어준 에서 가져온 orderId
  total: number,     // 제품들 누적합 가격
  delivery: number,  // 배송비
  userName: string,  // 유저이름
  Toss_Key: string,  // 토스 클라이언트 키 
  payingItems: string[], // 주문한 아이템들 카트 아이디 
) {
  const tossPayments = await loadTossPayments(Toss_Key);
  tossPayments.requestPayment('카드', {
    amount: total + delivery,
    orderId: orderId,
    orderName: '인코스런 주문',
    customerName: userName,
    successUrl: `http://localhost:3000/orderpage/success?items=${payingItems}`,
    failUrl: 'http://localhost:3000/fail',
  });
}



/** 결제 페이지 */

TossPayment(
          response.id,
          prices.total,
          prices.delivery,
          userName
          TOSS_KEY,
          payingItems,
        );

 

연동 완성쓰 ... 실제로 되고 돈은 안나가니까 기부니가 좋습니다.