결제 화면 호출 - SDK

KPN JavaScript SDK는 가맹점 내 결제 서비스에 간단한 스크립트 추가를 통해 결제 연동이 가능합니다.

안내사항
  • 결제서비스 UI 인코딩 방식은 UTF-8 입니다.
  • 결제 요청 Timeout은 30분입니다.
  • 파라미터는 별도 공지 없이 추가될 수 있습니다.

서비스 흐름

결제 흐름 요약
  1. 결제 화면 호출: SDK를 통해 KPN 결제창을 띄웁니다.
  2. 인증 완료: 사용자가 결제수단을 선택하고 인증을 완료하면, returnUrl로 결과가 전달됩니다.
  3. 승인 요청: 인증 성공 시 approvalUrl을 사용하여 승인 요청 API를 호출합니다.
  4. 결제 완료: 승인 결과에 따라 사용자에게 결과를 안내합니다.

샘플 코드

html
<!doctype html> <html> <head></head> <body> <button id="payBtn" type="button" value="결제 테스트" /> <script src="{EndPoint URL}/js/firstpay_v2.js"></script> <script> document.querySelector("#payBtn").addEventListener("click", function () { // SDK (SDK Parameter ) let pay = new FirstPay({ env: "develop", openType: "popup", onFailure: (error) => { console.error(`[${error.code}] ${error.message}`); alert(`요청 실패: ${error.message}`); } }); // (Payment Parameter ) pay.goPay({ mxId: "testcorp", mxIssueNo: "YYYYMMDD00001", mxIssueDate: "YYYYMMDDHHMMSS", orderName: "테스트", amount: 1000, returnUrl: "https://testReturnUrl.co.kr", callHash: SHA256("testcorpYYYYMMDD0000110006aMoJujE34XnL9gvUqdKGMqs9GzYaNo6") }); }); </script> </body> </html>

결제 금액 주의

1,004원은 당사 정책에 따라 매입 처리되지 않으며, 매입 취소도 불가능합니다. 운영환경에서 테스트하실 경우 1,004원 이외의 금액을 사용해 주세요.

요청 파라미터

SDK 파라미터

필수
조건부 필수
key타입필수기본값설명
String-develop호출 환경 설정
String-popup결제페이지 호출 방식 (popup, layer, submit)
closeWindowOnlyBoolean-false닫기 클릭 시, 창만 닫기 여부. false: returnUrl로 이동, true: 창 닫기
onFailureFunction--SDK 방식에서 결제 서비스 호출 실패 시 실행되는 콜백 함수

결제 파라미터

공통

필수
조건부 필수
key타입최대크기필수기본값설명
String2--결제종류. 단일 결제수단만 노출 시 사용
mxIdString12-가맹점 ID
mxIssueNoString32-주문번호 (유니크한 값 권장)
mxIssueDateString14-주문일시 (YYYYMMDDHHMMSS)
orderNameString256-상품명
amountNumber--결제금액
taxAmountNumber---과세결제금액
taxFreeAmountNumber---면세결제금액
custNameString64--주문자 명
emailString64--주문자 이메일주소
phoneNoString32--주문자 휴대폰번호 ('-' 제거)
returnUrlString256-인증 결과 수신 URL
mallApReservedString1024--가맹점필드 (인증 완료 후 리턴)
String20-ko사용언어구분
callHashString--체크용 해시 데이터 : SHA256(mxId + mxIssueNo + amount + passKey)
payMethodViewBoolean--true결제수단 표시 여부
simplepayViewBoolean--true간편결제 결제수단 표시 여부
emailViewBoolean--true이메일 입력 필드 표시 여부
escrowViewBoolean--true에스크로 표시 여부
supportDateViewBoolean--false제공기간 표시 여부
supportDateString256-별도제공기간없음제공기간 노출 텍스트

신용카드 전용

필수
조건부 필수
key타입최대크기필수설명
String10-비인증 방식 결제
String256카드사 코드 (':' 구분자로 여러 카드사 노출 가능)
cardInstallmentString2-카드할부개월

가상계좌 전용

필수
조건부 필수
key타입최대크기필수설명
expireDateString14-가상계좌 만료일시 (YYYYMMDDHHMMSS)
vactNotiUrlString256가상계좌 통보 URL (가상계좌 사용 시 필수)
  • 개발계에서 가상계좌 입금 통보 테스트를 하시려면 별도의 API로 테스트가 가능합니다.

휴대폰 전용

필수
조건부 필수
key타입최대크기필수설명
String1휴대폰 결제 유형 (휴대폰결제 사용 시 필수)

현금영수증 전용

필수
조건부 필수
key타입최대크기필수기본값설명
String1-Y현금영수증 플래그

간편결제 전용

필수
조건부 필수
key타입최대크기필수설명
String10-간편결제 하위 결제수단 코드

다이렉트 전용

필수
조건부 필수
key타입최대크기필수기본값설명
directViewBoolean--false다이렉트 방식 사용여부
escrowTelString32-에스크로 이용자 휴대폰번호
String12현금영수증 구분
receiptValueString20-현금영수증 발행 데이터
네이버페이 다이렉트 호출 시 유의사항

네이버페이는 iframe을 지원하지 않아, openType: 'layer'로 설정해도 자동으로 popup으로 열립니다.


응답 파라미터

KPN 결제창에서 완료한 경우, returnUrl에 설정된 곳으로 응답 데이터(Form Submit)가 전달됩니다.

필수
조건부 필수
key타입최대크기필수설명
mxIdString12가맹점 ID
mxIssueNoString32주문번호
mxIssueDateString14주문일시
amountString12결제금액
mallApReservedString1024-가맹점필드
codeString4에러코드 (성공: 0000)
messageString--에러메세지 (실패인 경우 리턴)
fdTidString18-KPN 인증 거래번호 (성공인 경우 리턴)
approvalUrlString--승인 요청 URL (성공인 경우 리턴)
다음 단계

응답 파라미터의 code0000(성공)인 경우, approvalUrl을 사용하여 승인 요청을 진행해야 합니다.