휴대폰 결제
휴대폰 결제 연동하기
휴대폰 결제는 고객이 휴대폰 번호를 기반으로 본인 인증을 진행한 뒤, 결제 금액을 다음 달 통신요금에 합산해 청구하는 결제수단입니다.
고객은 신용카드나 계좌 정보를 입력하지 않고 PASS 인증 또는 SMS 인증으로 결제를 완료할 수 있으며,
가맹점은 결제창 인증 결과로 전달받은 enc_data·enc_info를 이용해 최종 승인 요청을 처리합니다.
휴대폰 결제 취소
휴대폰 결제는 통신사 정책에 따라 결제가 발생한 당월에만 취소할 수 있습니다.
취소 가능 기간이 지난 경우 KCP를 통한 취소 처리가 불가하므로, 가맹점 자체 환불 절차로 안내해야 합니다.
예) 5월 31일 결제 > 6월 1일 취소 불가
휴대폰 결제 특징
휴대폰 번호 기반 결제
카드나 계좌 정보를 입력하지 않고 휴대폰 번호와 본인 인증만으로 결제를 진행할 수 있습니다.
PASS·SMS 인증 지원
통신사 PASS 앱 인증과 SMS 인증을 통해 고객 본인 여부를 확인한 뒤 결제 인증 결과를 전달합니다.
통신요금 합산 청구
결제 금액은 고객의 다음 달 휴대폰 요금에 함께 청구되며, 별도의 카드 결제 없이 이용할 수 있습니다.
당월 취소 제한
통신사 정책상 결제 발생 당월에만 취소가 가능하므로, 취소 가능 기간 안내가 중요합니다.
휴대폰 결제 서비스 과정
1. Mobile 거래등록 하기
Mobile 환경에서는 결제창 호출 전, 주문·결제 정보를 미리 NHN KCP 결제 서버에 등록하는 거래등록이 필요합니다.
거래등록 응답으로 받은 approval_key·PayUrl을 결제창 호출 시 사용합니다.
2. 결제창 호출하기
거래등록 후, 결제수단 인증과 결제 요청을 위해 결제창을 호출합니다.
PC와 Mobile 환경에 따라 호출 방식이 다릅니다.

Mobile 결제창 호출
Mobile 환경에서는 거래등록 후 call_pay_form 함수를 호출합니다.
거래등록 응답에서 리턴된 PayUrl(결제창 호출 주소)에 order_info를 전달해 결제창을 띄웁니다.
function call_pay_form() { var v_frm = document.order_info; var PayUrl = v_frm.PayUrl.value; v_frm.action = PayUrl.substring(0, PayUrl.lastIndexOf("/")) + "/jsp/encodingFilter/encodingFilter.jsp"; v_frm.submit(); }
<form name="order_info" method="post" action="PayUrl">
{
"site_cd":"T0000",
"pay_method":"MOBX",
"currency":"410",
"shop_user_id":"hong123",
"shop_name":"NHN KCP SHOP",
"Ret_URL":"https://your-shop.example.com/return",
"approval_key":"J9z6rqeRrRIjGoxmPPQtpgcHyKIPdQiE35VBPEo1sQ=",
"PayUrl":"https://testsmpay.kcp.co.kr/pay/mobileGW.kcp",
"ordr_idxx":"TEST123456789",
"good_name":"운동화",
"good_mny":"1000",
"good_cd":"00"
} PC 결제창 호출
PC 환경에서는 결제창 스크립트를 로드한 뒤 jsf_pay 함수에서 KCP_Pay_Execute_Web 메서드에 order_info를 전달합니다.
테스트 환경 : https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js
운영 환경 : https://spay.kcp.co.kr/plugin/kcp_spay_hub.js
function jsf_pay(form) { try { KCP_Pay_Execute_Web(form); // 결제창 호출 } catch (e) { /* 브라우저에서 결제창 정상 종료 시 throw되는 스크립트 종료 예외 */ } }
<form name="order_info" method="post" action="승인요청URL">
{
"site_cd":"T0000",
"site_name":"NHN KCP",
"pay_method":"000010000000",
"currency":"410",
"shop_user_id":"hong123",
"ordr_idxx":"TEST123456789",
"good_name":"운동화",
"good_mny":"1000",
"good_cd":"00"
}결제창 호출 파라미터
휴대폰 : MOBX
ex) "pay_method" : "MOBX"
PC 결제수단 코드 값입니다. (12 Byte)
휴대폰 : 000010000000
ex) "pay_method" : "000010000000"
※ 거래등록 시 전송한 Ret_URL 값과 동일한 값을 결제창 호출 form에도 함께 전송해야 합니다.
※ 콜백 응답 Body는 EUC-KR로 인코딩되어 전달되므로, 가맹점 서버에서 디코딩 처리가 필요합니다.ex) "Ret_URL" : "https://your-shop.example.com/return"
※ 기관에 따라 리스크 관리 조치를 위한 쇼핑몰 관리 ID를 필수로 요청ex) "shop_user_id" : "hong123"
휴대폰 옵션 파라미터
추가옵션 파라미터
- 로고 파일은 GIF, JPG 파일만 지원합니다.
- 최대 크기는 150 X 50 미만입니다.
- 이미지 파일을 150 X 50 이상으로 설정하거나 이 파라미터를 생략하면 site_name 값이 표시됩니다.
※ site_logo 설정 시 결제창 호출이 느려질 수 있습니다.ex) "site_logo" : "https://test.kcp.co.kr/logo.jpg"
"", "0" : 일반결제
"1" : 제공기간
※ 기본값은 일반결제입니다.ex) "good_expr" : "0"
※ 복합과세 전용 사이트코드로 계약한 가맹점에만 해당합니다.ex) "comm_tax_mny" : "909"
※ 복합과세 전용 사이트코드로 계약한 가맹점에만 해당합니다.ex) "comm_free_mny" : "0"
※ 복합과세 전용 사이트코드로 계약한 가맹점에만 해당합니다.ex) "comm_vat_mny" : "91"
3. 결제창 인증 결과
결제창에서 PASS 인증 또는 SMS 인증이 완료되면 인증 결과 데이터가 가맹점으로 전달됩니다.
응답 파라미터 중 enc_info와 enc_data는 인증 정보를 암호화한 값이므로, 리턴된 값을 변경하지 말고 그대로 승인 요청에 사용하세요.
PASS 인증: 통신사 PASS 앱을 이용해 본인 여부를 확인하는 인증 방식입니다. 비밀번호나 생체인증으로 간편하게 인증할 수 있습니다.
SMS 인증: 휴대폰 번호로 전송된 인증번호를 입력해 본인 여부를 확인하는 일반 인증 방식입니다.


결제창 인증 주요 파라미터
{
"res_cd":"0000",
"res_msg":"정상처리",
"tran_cd":"00100000",
"enc_data":"SnvXdGftIEjAequorkpNhJXc4u3GRuotLHW9vyDDOhdeorM4DPXMJgJllEoRo6divo=",
"enc_info":"3dsgjljlsSEGHsdccndsgnfdSDDhhbdrhffRbdfRYHFgfgnb=_"
} 결제창 인증 결과 파라미터
※ 임의로 변경할 수 없으며 결제창에서 내려 주는 값을 그대로 사용합니다.ex) "enc_data" : "SnvXdGftIEjAequorkpNhJXc4u3GRuotLHW9vyDDOhdeorM4DPXMJgJllEoRo6divo="
※ 임의로 변경할 수 없으며 결제창에서 내려 주는 값을 그대로 사용합니다.ex) "enc_info" : "3dsgjljlsSEGHsdccndsgnfdSDDhhbdrhffRbdfRYHFgfgnb=_"
4. 결제 승인 요청하기
전달받은 인증 결과 데이터(enc_data·enc_info)를 API 통신으로 결제 승인 요청하는 단계입니다.
승인 요청 전에는 결제창에서 받은 인증 결과와 실제 승인 요청 값이 일치하는지 확인하기 위해
결제 금액(ordr_mony)·주문번호(ordr_no)·결제수단(pay_type)을 함께 전달하여 결제정보를 검증하세요.
5. 결제 승인 응답
결제 승인에 성공하면 res_cd에 0000이 리턴되고, 결제수단별 응답 파라미터에 값이 채워져 함께 리턴됩니다.
응답 데이터를 확인해 결제수단별 결과 값을 가맹점 서버에 저장·관리하세요.