(구) 나이스페이먼츠
(구) 나이스페이먼츠 결제창 연동 가이드를 안내합니다.
나이스페이먼츠(구모듈) 연동 방법에 관한 매뉴얼입니다.
신규 연동 고객사이시거나 나이스페이먼츠 신모듈로 업그레이드를 원하신다면 나이스페이먼츠(신모듈) 연동 가이드를 참고하여 진행해주세요. 구모듈에 비해 신모듈에서 다양한 기능 및 결제수단을 지원하고 있습니다. 신규 고객사의 경우 가급적 신모듈로 연동하는 것을 권장드립니다.
1. 나이스페이먼츠 채널 설정하기
결제대행사 채널 설정하기 페이지의 내용을 참고하여 채널 설정을 진행합니다.
2. 결제 요청하기
JavaScript SDK IMP.request_pay(param, callback)
을 호출하여
NICE페이먼츠 결제창을 호출할 수 있습니다.
결제결과는 PC의 경우 IMP.request_pay(param, callback)
호출 후
callback 으로 수신되고
모바일의 경우 m_redirect_url 로 리디렉션됩니다.
Javascript SDKIMP.request_pay( { channelKey: "{콘솔 내 연동 정보의 채널키}", pay_method: "card", merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 name: "주문명:결제테스트", amount: 1004, buyer_email: "test@portone.io", buyer_name: "구매자이름", buyer_tel: "010-1234-5678", buyer_addr: "서울특별시 강남구 삼성동", buyer_postcode: "123-456", language: "en", // 결제창 언어 선택 파라미터 ko: 한국어, en: 영문 m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", niceMobileV2: true, // 신규 모바일 버전 적용 시 설정 }, function (rsp) { // callback 로직 //* ...중략... *// }, );
주요 파라미터 설명
channelKey
* string
채널키
결제를 진행할 채널을 지정합니다.
포트원 콘솔 내 [결제 연동] - [연동 정보] - [채널 관리] 에서 확인 가능합니다.
(최신 JavaScript SDK 버전부터 사용 가능합니다.)
pg
(deprecated) string
PG사 구분코드
nice
로 지정하면 됩니다.
pg
파라미터는 지원 중단 예정입니다.
JS SDK를 가장 최신 버전으로 업그레이드 후 channelKey
파라미터로 채널 설정(PG사 구분)을 대체해주세요.
pay_method
* string
결제수단 구분코드
- card(신용카드)
- trans(실시간 계좌이체)
- vbank(가상계좌)
- phone(휴대폰소액결제)
- kakaopay(카카오페이)
merchant_uid
* string
주문번호
매번 고유하게 채번되어야 합니다.
amount
*number
결제금액
string 이 아닌점에 유의하세요
niceMobileV2
boolean
나이스 모바일 신규버전 적용 여부(기본 값: false
)
escrow
boolean
에스크로 설정여부
currency
string
결제 통화(기본 값: KRW)
- KRW(한국 원)
- USD(미국 달러)(모바일의 경우
niceMobileV2
파라미터가true
일 경우에만 사용 가능)
API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.
일회성 결제 요청하기
REST API POST /subscribe/payments/onetime을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다.
curl -H "Content-Type: application/json" \
-X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
https://api.iamport.kr/subscribe/payments/onetime
빌링키 발급 요청하기
REST API POST /subscribe/customers/{customer_uid}를 호출하여 빌링키 발급을 요청합니다.
curl -H "Content-Type: application/json" \
-X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \
https://api.iamport.kr/subscribe/customers/your-customer-unique-id
빌링키 발급 및 최초 결제 요청하기
REST API POST /subscribe/payments/onetime을 호출하여 빌링키 발급과 최초 결제를 요청합니다.
customer_uid
: 빌링키 등록을 위해서 지정해야 합니다.
curl -H "Content-Type: application/json" \
-X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
https://api.iamport.kr/subscribe/payments/onetime
빌링키로 결제 요청하기
빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 customer_uid
와 1:1 매칭되어 포트원에 저장됩니다.
보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 customer_uid
를 이용해서
재결제(POST /subscribe/payments/again) REST API를 다음과 같이 호출합니다.
curl -H "Content-Type: application/json" \
-X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
https://api.iamport.kr/subscribe/payments/again
나이스페이먼츠는 비인증 결제는 API 방식으로만 지원됩니다.
비인증 결제를 연동하기 위해서는 카드정보를 획득할수 있는 UI를 구성해 주셔야 하며 해당 가이드는 비인증결제 연동하기에서 확인해주시면 됩니다.
3. 부가기능
{
"display": {
"card_quota": [6] // 할부개월 6개월까지만 활성화
}
}
파라미터 설명
card_quota
:[]
: 일시불만 결제 가능2,3,4,5,6
: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\
할부결제는 5만원 이상 결제 요청 시에만 이용 가능합니다.
{
"card": {
"direct": {
"code": "367",
"quota": 3
}
}
}
파라미터 설명
code
: 카드사 금융결제원 표준 코드. 링크 참조 (string)quota
: 할부 개월 수. 일시불일 시 0으로 지정. (number)
주의사항
- 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다.
{
"card": {
"detail": [
{ "card_code": "*", "enabled": false }, //모든 카드사 비활성화
{ "card_code": "366", "enabled": true } //특정 카드만 활성화
]
}
}
파라미터 설명
card_code
: 금융결제원 카드사 코드. 링크 참조 (string)enabled
: 해당 카드 활성화 여부 (boolean)
// 영세율 결제 경우
{
"amount": 1000,
"tax_free": 0,
"vat_amount": 0 // 부가세 지정
}
파라미터 설명
vat_amount
: 상점 아이디 설정이 지정금액 방식인 경우 부가세 지정 가능 (number)
주의사항
- 상점 아이디 설정이 지정금액 방식인 경우에는 취소 시에 공급가액, 부가세, 봉사료, 면세금액 등을 설정하도록 하고 있습니다.(링크의 1617 코드 참조). 취소 시 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 공급가액, 부가세, 면세금액, 봉사료(0원)가 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다.