Version 1
결제창 SDK v1은 더 이상 업데이트되지 않습니다. 토스페이먼츠 SDK v2 연동을 추천합니다.
토스페이먼츠 결제창 화면 대신 미리 선택한 카드사와 간편결제사의 자체창을 바로 호출하는 방법을 알려드려요.
카드사 자체창은 앱카드, 일반결제 등 카드사에서 제공하는 모든 결제 방법을 제공합니다. 간편결제사 자체창은 구매자가 간편결제에 미리 등록한 카드나 계좌로 결제할 수 있는 서비스를 제공합니다. 해외카드 자체창은 지원하지 않습니다.
간편결제는 토스페이, 네이버페이, 삼성페이, 엘페이, 카카오페이, 페이코, SSG페이를 지원합니다. 간편결제 서비스를 연동하려면 토스페이먼츠 고객센터(1544-7772, support@tosspayments.com)로 문의해주세요.
결제창은 API 개별 연동 키로 연동하세요.
토스페이먼츠에 회원가입하기 전이라면, 다음 문서 테스트 키로 연동할 수 있어요. 토스페이먼츠에 회원가입했다면, 로그인 후 내 테스트 키로 결제를 연동하고 개발자센터에서 테스트 결제내역을 확인하세요.
SDK를 스크립트 태그에 추가한 뒤 클라이언트 키를 사용해 객체를 초기화합니다.
더 자세한 SDK 설명은 결제창 SDK 페이지에서 확인할 수 있습니다.
초기화된 객체로 SDK 메서드를 사용할 수 있습니다. requestPayment(결제수단, 결제 정보)
메서드로 결제창을 호출합니다.
첫 번째 파라미터는 결제수단입니다. 카드사 결제창 및 간편결제창은 결제수단으로 카드
를 추가하세요.
두 번째 파라미터는 결제 정보입니다. 결제 금액 등 필수 파라미터를 먼저 설정하고 flowMode
파라미터를 DIRECT
로 고정하세요. 자체창으로 열 카드사를 cardCompany
에 카드사 코드로 설정하세요. 간편결제는 easyPay
에 간편결제사 코드로 설정하세요.
모바일 환경에서는 iframe이나 frame 위에서 결제창을 호출하면 안 돼요. iframe 위에서 네이버페이 등 특정 결제수단이 정상적으로 작동하지 않고, 모바일 환경에서 결제창을 호출하면 페이지가 항상 이동하기 때문입니다.
메서드 실행에 성공하면 위와 같이 선택한 카드사 또는 간편결제사 자체창이 열립니다. 결제를 완료하려면 결제 승인을 요청하세요.
메서드 실행에 실패하면 reject 된 에러는 Promise의 catch 블록에서 처리할 수 있습니다. 발생할 수 있는 에러 코드를 살펴보세요.
카드사 결제창 또는 간편결제창을 띄우기 전에 구매자에게 아래 토스페이먼츠 이용약관 동의를 받으세요.
- 전자금융거래 이용약관: https://pages.tosspayments.com/terms/user
- 개인(신용)정보 수집이용 동의: https://pages.tosspayments.com/terms/privacy/consent1
- 개인(신용)정보 제3자 제공 동의: https://pages.tosspayments.com/terms/privacy/consent2
- amount 필수 · number
결제되는 금액입니다.
- orderId 필수 · string
주문번호입니다. 주문을 구분하는 ID입니다. 충분히 무작위한 값을 생성해서 각 주문마다 고유한 값을 넣어주세요. 영문 대소문자, 숫자, 특수문자
-
,_
,=
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. - orderName 필수 · string
구매상품입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - successUrl 필수 · string
결제가 성공하면 리다이렉트되는 URL입니다. 결제 승인 처리에 필요한 값들이 쿼리 파라미터로 함께 전달됩니다. 반드시 오리진을 포함해야 합니다. 예를 들면
https://www.example.com/success
와 같은 형태입니다. - failUrl 필수 · string
결제가 실패하면 리다이렉트되는 URL입니다. 에러 코드 및 에러 메시지가 쿼리 파라미터로 함께 전송됩니다. 반드시 오리진을 포함해야 합니다.
- flowMode string
결제창 유형입니다.
DEFAULT
,DIRECT
중 하나입니다.카드사 결제창 또는 간편결제창을 연동하려면 값을
DIRECT
로 지정하고cardCompany
또는easyPay
파라미터를 설정하세요. - easyPay string
연동하려는 간편결제 서비스 코드입니다. 예를 들어,
토스페이
값을 주면 바로 토스페이 결제창이 실행됩니다. 간편결제사 코드를 참고하세요.* 테스트 환경에서는 페이코의 결제 및 취소가 제대로 진행되지 않을 수 있습니다.
- cardCompany string
카드사 코드입니다. 카드사 코드를 참고하세요. 예를 들어,
현대
값을 주면 현대카드 결제창이 실행됩니다.* 카드사 결제창은 국내 카드사만 지원합니다. 해외 카드사 코드는 사용할 수 없습니다.
- useAppCardOnly boolean
카드사 앱카드로만 결제할지 결정합니다. 이 값을
true
로 주면 카드사 결제창에서 일반결제 등 다른 결제 방식을 선택할 수 있는 단계를 건너뛰고 바로 카드사의 앱카드 결제창이 열립니다.국민, 농협, 롯데, 삼성, 신한, 우리, 현대 카드에만
true
값을 사용할 수 있습니다. - appScheme string
페이북/ISP 앱에서 상점 앱으로 돌아올 때 사용됩니다. 상점의 앱 스킴을 지정하면 됩니다.
testapp://
같은 형태입니다.
카드사 결제창 및 간편결제창에서 사용할 수 있는 더 많은 파라미터는 결제창 Javascript SDK에서 확인하세요.
결제 요청이 성공하면 successUrl
로 이동합니다. URL에 포함된 쿼리 파라미터를 확인하고 결제 승인을 요청하세요.
결제 요청이 실패하면 failUrl
로 이동합니다. 결제 실패 URL 리다이렉트를 살펴보세요.
결제 성공 리다이렉트 URL에는 paymentKey
, orderId
, amount
세 가지 쿼리 파라미터가 들어있습니다.
paymentKey
: 결제의 키 값입니다. 결제를 식별하는 역할로, 중복되지 않는 고유한 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 결제 상태가 변해도 값이 유지됩니다. 결제 승인에 사용됩니다.orderId
: 주문번호입니다. 주문한 결제를 식별하는 역할로, 결제를 요청할 때 가맹점에서 만들어서requestPayment()
에 담아 보낸 값입니다. 결제 데이터 관리를 위해 반드시 저장해야 합니다. 중복되지 않는 고유한 값을 발급해야 합니다. 결제 상태가 변해도 값이 유지됩니다.amount
: 실제로 결제된 금액입니다.
리다이렉트 URL 쿼리 파라미터를 이용해 결제 승인 API를 호출할 수 있습니다.
requestPayment()
메서드에 담아 보낸 결제 금액과 successUrl
로 돌아온 amount
값이 같은지 반드시 확인해보세요. 클라이언트에서 결제 금액을 조작해 승인하는 행위를 방지할 수 있습니다.
만약 값이 다르다면 결제를 취소하고 구매자에게 알려주세요. 적립금이나 쿠폰이 적용된 금액이 맞는지도 확인해보세요.
결제 승인 API를 호출합니다. 요청 본문에는 리다이렉트 URL로 받은 paymentKey
, orderId
, amount
를 넣습니다. Basic 인증 헤더에는 시크릿 키와 콜론을 base64로 인코딩해서 넣습니다.
successUrl
로 리다이렉트 된 후 10분 이내에 결제 승인 API를 호출해야 합니다.
API 호출 결과로 HTTP 200 OK
를 받으면 결제 승인 성공입니다. 상태 코드와 함께 Payment 객체가 응답으로 돌아옵니다. 응답 객체에 선택한 결제수단의 필드가 있는지 확인하세요.
간편결제 서비스를 사용하면 선택한 결제수단에 따라 돌아오는 응답 객체가 달라집니다. 간편결제 응답 확인 가이드를 참고해서 간편결제 응답 객체 처리까지 진행해주세요.
간편결제에서 결제수단을 조합해서 사용하면 결제 응답 객체가 조금씩 달라집니다. 아래 토스페이 사용 예시를 확인해보세요.
결제수단 | 설명 | 응답 객체 금액 필드 | 예시 |
---|---|---|---|
신용·체크 카드 | 구매자가 간편결제 서비스에 등록한 카드 | card.amount | 토스페이에 등록된 카드 |
충전식 결제수단 | 구매자가 금액을 충전해서 사용하는 결제수단으로 간편결제 서비스에 등록한 계좌 혹은 현금성 포인트 | easyPay.amount | 토스페이에 연결된 계좌, 카카오페이머니 |
적립식 결제수단* | 구매자가 간편결제사에서 제공하는 결제 서비스를 이용해서 적립된 포인트, 쿠폰, 즉시할인 금액으로 카드나 충전식 결제수단과 조합해서 사용 | easyPay.discountAmount | 토스포인트, 카카오페이포인트 |
* 적립식 결제수단은 카드 혹은 충전식 결제수단과 조합해서 사용할 수 있습니다.
토스페이에 등록된 카드로 15,000원을 결제하면 전체 결제 금액 totalAmount
는 카드로 결제한 금액인 card.amount
와 동일합니다.
토스페이에 등록된 카드로 10,000원을 결제하고 토스포인트에서 5,000원을 사용해 총 15,000원을 결제합니다.
전체 결제 금액 totalAmount
은 card.amount
와 easyPay.discountAmount
의 합계입니다.
토스페이에 연결된 계좌로 결제하면 전체 결제 금액 totalAmount
는 계좌로 결제한 금액인 easyPay.amount
와 동일합니다. 즉 easyPay
객체만 확인하면 됩니다.
토스페이에 연결된 계좌로 15,000원을 결제하고 토스포인트에서 5,000원을 사용해 총 15,000원을 결제합니다.
전체 결제 금액 totalAmount
는 easyPay.amount
와 easyPay.discountAmount
의 합계입니다.
토스포인트로 15,000원을 결제하면 전체 결제 금액 totalAmount
는 easyPay.discountAmount
와 동일합니다. 즉 easyPay
객체만 확인하면 됩니다.