(신) 나이스페이먼츠
(신) 나이스페이먼츠 결제창 연동 방법을 안내합니다.
1. (신) 나이스페이먼츠 PG 설정하기
(신) 나이스페이먼츠 설정 페이지의 내용을 참고하여 PG 설정을 진행합니다.
아래 기능을 사용하시려면 나이스페이먼츠에 사전 신청 후 계약이 완료되어야 합니다. 그렇지 않은 상태에서 해당 기능 이용시 PG창 호출에 실패하거나, 승인에 실패하거나, 승인에 성공하더라도 의도한 바와는 다른 응답을 얻게 될 수 있으니 주의 해주시기 바랍니다.
- 모든 결제 수단(간편결제 포함)
- 면세 / 복합과세 사용
- 부가세 지정 금액 방식 사용(영세율 포함)
- 부분 취소
- 할부 사용
- 상점 부담 무이자 할부 사용
- 카드사 포인트 사용
- 에스크로 사용
- 해외 결제 사용
- 일부 bypass 파라미터
- UserCI
- MallUserID
- DirectCouponYN
- PaycoClientId, PaycoAccessToken
- SamPayMallType
2. 최신 JavaScript SDK로 업데이트하기
(신) 나이스페이먼츠 결제는 최신 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 로 리디렉션됩니다.
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값을 추가하면 비인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다.
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)
- 모바일 (리디렉션)