개발자센터

(신) 나이스페이먼츠

(신) 나이스페이먼츠 결제창 연동 방법을 안내합니다.

1. (신) 나이스페이먼츠 PG 설정하기

(신) 나이스페이먼츠 설정 페이지의 내용을 참고하여 PG 설정을 진행합니다.

아래 기능을 사용하시려면 나이스페이먼츠에 사전 신청 후 계약이 완료되어야 합니다. 그렇지 않은 상태에서 해당 기능 이용시 PG창 호출에 실패하거나, 승인에 실패하거나, 승인에 성공하더라도 의도한 바와는 다른 응답을 얻게 될 수 있으니 주의 해주시기 바랍니다.

  • 모든 결제 수단(간편결제 포함)
  • 면세 / 복합과세 사용
  • 부가세 지정 금액 방식 사용(영세율 포함)
  • 부분 취소
  • 할부 사용
  • 상점 부담 무이자 할부 사용
  • 카드사 포인트 사용
  • 에스크로 사용
  • 해외 결제 사용
  • 일부 bypass 파라미터
    • UserCI
    • MallUserID
    • DirectCouponYN
    • PaycoClientId, PaycoAccessToken
    • SamPayMallType

2. 최신 JavaScript SDK로 업데이트하기

(신) 나이스페이먼츠 결제는 최신 SDK에서만 지원되는 기능입니다.

JS SDK
<script src="https://cdn.iamport.kr/v1/iamport.js"></script>

(신) 나이스페이먼츠를 연동하기 위해서는 위에 안내된 JS SDK를 이용하셔야 합니다

기존에 deprecated된 콜백 응답은 모두 제거됐습니다.

신규 JS SDK는 기존 모듈에서 제공했던 CallBack 응답 파라미터가 대부분 삭제되었습니다. (특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.)

해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다.

imp_uid, merchant_uid

따라서 해당 SDK를 사용하실때는 IMP.request_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 imp_uid를 가지고 아임포트 REST API(GET /payments/imp_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회하여 응답 파라미터 중 status 파라미터로 결제 상태를 파악하셔야 합니다.

JavaScript SDK 문서를 통해 최신 SDK를 설치해주세요.

3.결제 요청하기

JavaScript SDK IMP.request_pay(param, callback)을 호출하여 (신) 나이스페이먼츠 결제창을 호출할 수 있습니다. 결제 결과는 PC의 경우 IMP.request_pay(param, callback) 호출 후 callback으로 수신되고 모바일의 경우 m_redirect_url 로 리디렉션됩니다.

Javascript SDK
IMP.request_pay(
  {
    pg: "nice_v2.{상점 ID}",
    pay_method: "card",
    merchant_uid: "orderNo0001",
    name: "주문명:결제테스트",
    amount: 1004,
    buyer_email: "test@portone.io",
    buyer_name: "구매자이름",
    buyer_tel: "010-1234-5678",
    buyer_addr: "서울특별시 강남구 삼성동",
    buyer_postcode: "123-456",
    m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}",
  },
  function (rsp) {
    // callback 로직
  }
);

주요 파라미터 설명

pg *string

PG사 구분코드

nice_v2 로 지정하면 됩니다.

pay_method * string

결제수단 구분코드

  • card (신용카드)
  • trans (실시간 계좌이체)
  • vbank (가상계좌)
  • phone (휴대폰소액결제)
  • cultureland (컬쳐랜드)
  • naverpay_card (네이버페이 - 카드)
  • naverpay_point (네이버페이 - 포인트)
  • kakaopay (카카오페이)
  • payco (페이코)
  • samsungpay (삼성페이)
  • skpay (SKPAY)
  • ssgpay (SSGPAY)
  • ssgpay_bank (SSGPAY 은행계좌)
  • lpay (LPAY)
  • applepay (애플페이)

merchant_uid * string

주문번호

매번 고유하게 채번되어야 합니다.

amount * integer

결제금액

소수점 두번째 자리까지 허용합니다.

buyer_tel * string

구매자 전화번호

vbank_due * string

가상계좌 입금기한 (YYYY-MM-DD)

(신) 나이스페이먼츠의 경우 필수 입력이며 날짜는 무조건 23:59:59로 설정 됨

escrow * boolean

에스크로 결제 여부

period * array

서비스 제공 기간

날짜만 입력이 가능하며(시간은 무시) 시작 날짜와 종료 날짜를 모두 입력해야 합니다.

from : YYYYMMDD

to : YYYYMMDD

결제 가능 결제수단

  • card + 에스크로, 다이렉트
  • vbank + 에스크로
  • trans + 에스크로, 다이렉트(은행 지정 X)
  • phone + 다이렉트(통신사 지정 X)
  • cultureland
  • naverpay_card
  • naverpay_point
  • kakaopay
  • payco
  • samsungpay
  • skpay
  • ssgpay
  • ssgpay_bank
  • lpay
  • applepay

인증결제창 호출 파라미터에서 customer_uid, customer_id값을 추가하면 비인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다.

Javascript SDK
IMP.request_pay({
  pg: "nice_v2.{MID}",
  pay_method: "card", // 'card'만 지원
  merchant_uid: "orderMonthly0001", // 상점에서 관리하는 주문 번호
  name: "최초인증결제",
  customer_uid: "your-customer-unique-id", // 필수 입력
  buyer_email: "test@portone.io",
  buyer_name: "포트원",
  buyer_tel: "02-1234-1234",
  m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}",
  customer_id: "matthew", // 가맹점이 회원에게 부여한 고유 ID
}, function (rsp) {
  // callback 로직
});

주요 파라미터 설명

pg *string

PG사 구분코드

nice_v2 로 지정하면 됩니다.

pay_method * string

결제수단 구분코드

  • card (신용카드)

merchant_uid * string

주문번호

매번 고유하게 채번되어야 합니다.

customer_uid * string

빌링키 발급을 위한 결제 수단을 특정하는 고유 번호

빌링키 발급시 필수 입력

customer_id * string

구매자 식별자

주의: (신) 나이스페이먼츠 빌링키 발급 시 필수 입력으로 입력 길이는 20자로 제한됩니다.

m_redirect_url * string

리다이렉트 URL

리디렉션 방식으로 진행할 경우, 트랜잭션 종료 이후 302 리디렉션 될 가맹점 URL

(신) 나이스페이먼츠의 경우 모바일 환경에서 리디렉션 방식으로 빌링키 발급창이 렌더링 되기 때문에 필수입력입니다.

가능한 결제 환경

  • PC (iframe)
  • 모바일 (리디렉션)