KCP 퀵페이 (자체 간편결제)
NHN KCP 퀵페이 결제 연동 방법을 안내합니다.
퀵페이 (자체 간편 결제)
퀵페이 호출하기
퀵페이의 경우 결제 기능을 포함하여 결제수단 등록 및 삭제, PIN 변경 및 초기화, 탈퇴 기능을 지원합니다.
KCP 퀵페이 기준으로 작성한 예시 코드는 아래와 같습니다.
간편결제 서비스 결제수단을 등록합니다. 최초 결제수단 등록 시 간편결제 서비스 등록이 진행됩니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
pay_method: "card",
merchant_uid: "order_no_0001",
name: "결제수단 등록",
customer_uid: "use_your_unique_id_with_pay_method_0",
bypass: {
kcpQuick: {
actionType: "Register",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
등록된 간편결제 서비스 결제수단을 삭제합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "결제수단 삭제",
customer_uid: "use_your_unique_id_with_pay_method_0",
bypass: {
kcpQuick: {
actionType: "Deregister",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
등록된 간편결제 결제수단을 사용하여 결제를 진행합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
pay_method: "card", //즉시 출금 이용 시 'trans' 입력
merchant_uid: "order_no_0001",
name: "결제",
amount: 1000,
buyer_email: "test@portone.io",
buyer_name: "구매자이름",
buyer_tel: "010-1234-5678",
buyer_addr: "서울특별시 강남구 삼성동",
buyer_postcode: "123-456",
customer_uid: "use_your_unique_id_with_pay_method_0",
bypass: {
kcpQuick: {
actionType: "Pay",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
간편결제 서비스의 PIN을 변경합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "PIN 변경",
customer_uid: "use_your_unique_id", //`bypass.kcpQuick.memberId`와 동일하게 입력
bypass: {
kcpQuick: {
actionType: "PinChange",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
간편결제 서비스의 PIN을 초기화합니다. 기존 등록된 모든 결제수단이 삭제됩니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
pay_method: "card",
merchant_uid: "order_no_0001",
name: "PIN 초기화",
customer_uid: "use_your_unique_id", // `bypass.kcpQuick.memberId`와 동일하게 입력
bypass: {
kcpQuick: {
actionType: "PinReset",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
간편결제 서비스의 PIN을 확인합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
pay_method: "card",
merchant_uid: "order_no_0001",
name: "PIN 확인",
customer_uid: "use_your_unique_id", // `bypass.kcpQuick.memberId`와 동일하게 입력
bypass: {
kcpQuick: {
actionType: "PinCheck",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
간편결제 서비스에 등록된 전화번호를 변경합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "전화번호 변경",
customer_uid: "use_your_unique_id", // `bypass.kcpQuick.memberId`와 동일하게 입력
bypass: {
kcpQuick: {
actionType: "PhoneChange",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
선불머니와 간편결제 서비스를 함께 이용할 수 있도록 유저를 등록합니다. 기 간편결제 서비스 유저에서 호출 시 선불머니 서비스 가입으로 진행합니다.
이 기능은 KCP와 사전 협의된 특정 고객만 사용 가능합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
pay_method: "card",
merchant_uid: "order_no_0001",
name: "선불머니+간편결제 서비스 유저 등록",
bypass: {
kcpQuick: {
actionType: "SignUp",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
간편결제 서비스를 해지합니다. 등록된 모든 결제수단이 삭제됩니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "간편결제 서비스 해지",
customer_uid: "use_your_unique_id", //`bypass.kcpQuick.memberId`와 동일하게 입력
bypass: {
kcpQuick: {
actionType: "Terminate",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
선불머니와 간편결제 서비스를 모두 해지합니다. 선불머니 잔액이 남아있는 경우 사전에 환급 요청을 완료해야 합니다.
이 기능은 KCP와 사전 협의된 특정 고객만 사용 가능합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "선불머니+간편결제 서비스 해지",
bypass: {
kcpQuick: {
actionType: "Leave",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
선불머니 환급을 위한 계좌 정보를 등록하거나 변경합니다.
이 기능은 KCP와 사전 협의된 특정 고객만 사용 가능합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "선불머니 환급계좌 등록 및 변경",
bypass: {
kcpQuick: {
actionType: "RefundAccount",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
선불머니 잔액을 등록된 계좌로 환급 요청합니다.
이 기능은 KCP와 사전 협의된 특정 고객만 사용 가능합니다.
IMP.request_pay(
{
channelKey: "{콘솔 내 연동 정보의 채널키}",
merchant_uid: "order_no_0001",
name: "선불머니 환급 요청",
bypass: {
kcpQuick: {
actionType: "PrepaidRefund",
encryptedCI: "encrypted_ci",
memberID: "use_your_unique_id",
},
},
m_redirect_url: "https://redirection.url",
},
function (rsp) {
// callback 로직
},
);
퀵페이의 경우 m_redirect_url시 다음과 같이 4개의 파라미터가 Query String으로 전달됩니다.
imp_uid
merchant_uid
imp_status
: true 또는 falsekcp_action
: 인증창 유형 (요청 시 입력한 bypass.kcpQuick.actionType 값)
kcp_action
이 Register 이고 imp_status
가 true인 경우 결제수단 등록에 성공하였다는 것을 의미합니다.
주요 파라미터
채널키
결제를 진행할 채널을 지정합니다.
포트원 콘솔 내 [결제 연동] - [연동 정보] - [채널 관리] 에서 확인 가능합니다.
(최신 JavaScript SDK 버전부터 사용 가능합니다.)
PG사 구분코드
포트원 콘솔 내 [연동 관리] > [연동 정보] > [채널 관리] 화면에서 채널 추가 후
kcp_quick.{mid(사이트코드)}
형식으로 채널을 지정할 때 사용됩니다.
pg
파라미터는 지원 중단 예정입니다.
JS SDK를 가장 최신 버전으로 업그레이드 후 channelKey
파라미터로 채널 설정(PG사 구분)을 대체해주세요.
결제수단 구분코드
결제 요청 시 혹은 결제수단 등록 시 결제수단을 지정할 때 사용됩니다. 결제(actionType:Pay), 결제수단등록(actionType:Register) 시 필수로 입력해야합니다.
- card (카드)
- trans (즉시출금)
고객사 주문 고유 번호
고객사에서 채번하는 주문 고유 번호로 매번 고유하게 채번되어야 합니다.
결제금액
결제 요청 시 필수 입력입니다.
결제 수단에 대한 고유 식별값
퀵페이에 등록된 결제수단과 1:1 맵핑됩니다. 결제수단 등록, 결제, 결제수단 해지 시 필수로 입력해야 합니다.
PG사 결제창 호출 시 PG사로 그대로 bypass할 파라미터들의 모음
KCP 퀵페이 설정정보
퀵페이 결제시 필수로 입력해야 합니다.
호출 유형
- Register : 결제 수단 등록
- UserRegister : 결제 수단 등록 없이 간편결제 서비스 유저 등록
- Deregister : 결제 수단 삭제
- Pay : 결제
- PinChange : PIN 변경
- PinReset : PIN 초기화
- PinCheck : PIN 확인
- PhoneChange : 전화번호 변경
- Terminate : 간편결제 서비스 해지
- SignUp : 간편결제+선불머니 서비스 유저 등록 (사전 협의 필요)
- Leave : 간편결제+선불머니 서비스 해지 (사전 협의 필요)
- PrepaidRefundAccount: 선불머니 환급계좌 등록 및 변경 (사전 협의 필요)
- PrepaidRefund: 선불머니 환급 요청 (사전 협의 필요)
암호화된 본인인증 CI
암호화 방법은 encryptedCI
파라미터 안내를 참고하세요.
본인인증 CI
보안상의 이유로 memberCI
파라미터는 지원 중단 되었습니다. encryptedCI
파라미터를 사용해야합니다.
사용자 식별값
고객사에서 결제유저를 식별하기 위한 값
최대 16글자까지 입력가능하며, 하나의 유저가 여러 개의 결제수단을 등록하는 경우 동일한 memberID
를 입력해야 합니다.
디바이스 식별값
미 입력시 고객이 사용한 브라우저 정보(User-Agent)가 입력됩니다.
무인증 등록/결제 여부
true
로 입력한 경우 무인증 키가 발급되며, 이후 결제시 PIN 인증 과정이 생략됩니다.
- true : 무인증 결제
- false : 인증 결제
할부 개월수
입력하지 않는 경우 일시불로 진행됩니다.
카드사 포인트 결제 여부
입력하지 않는 경우 미사용으로 진행됩니다.
- true : 카드사 포인트 사용
- false : 카드사 포인트 미사용