거래취소
1취소하기
거래취소는 상점에서 NHN KCP의 거래 상태를 취소하는 방법에 대해 설명합니다. 취소데이터를 API URL로 요청 할 수 있습니다.
거래취소 요청시에는 NHN KCP 발급 서비스 인증서와 부인방지를 위한 서명데이터 값이 필요합니다.
취소등록 API URL (target URL)
Stage : https://stg-spl.kcp.co.kr/gw/mod/v1/cancel
Product : https://spl.kcp.co.kr/gw/mod/v1/cancel
2서비스 인증서
NHN KCP 발급 서비스 인증서는 KCP-API 결제시 필요한 인증서 입니다.
실제 서비스 운영을 위해서는 각 상점에 맞는 서비스 인증서가 필요합니다.
NHN KCP 발급 인증서 내 데이터 값 추출 > 가맹점 인증을 위해 KCP로부터 발급 받은 인증서 정보를 text 형식으로 전달해주셔야 하며, 인증서의 text 값을 데이터 직렬화하여 kcp_cert_info 의 value 값으로 전달하시기 바랍니다.
kcp_cert_info = "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgIHkiG9w0……………
fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----";
kcp_cert_info는 결제 승인, 거래취소, 거래등록 시에 필요합니다.
추가적으로 NHN KCP 상점관리자 [ 기술관리센터 - 인증센터 - KCP PG-API ] 경로에서 개인키 + 인증서 발급이 가능합니다.
3서명데이터
서명데이터(kcp_sign_data)는 가맹점 부인방지와 요청 데이터의 무결성 검증을 위한 데이터이며,
NHN KCP로부터 발급받은 개인키(PRIVATE KEY)로 SHA256withRSA 알고리즘을 사용하여
문자열을 인코딩하는 방식으로 이루어집니다.
kcp_sign_data는 결제 거래취소 시에 필요합니다.
Cancel API 서명데이터(kcp_sign_data)는
site_cd + "^" + tno + "^" + mod_type 규칙으로 생성하며
SHA256withRSA 알고리즘을 통하여 인코딩 후 요청하시기 바랍니다.
kcp_sign_data = "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...cA0nyX+4HEUZ4Fy3U+htmkZqAfJlje
ujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w=="
4취소요청 예시
전체취소
{
"site_cd" : "T0000",
"kcp_cert_info" : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgI……………
fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----",
"kcp_sign_data" : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...
cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w==",
"mod_type" : "STSC",
"tno" : "2099123112345"
}
부분취소
{
"site_cd" : "T0000",
"kcp_cert_info" : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgI……………
fWn5Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----",
"kcp_sign_data" : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...
cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ...0qH7NSq0c6BpedDZb04w==",
"mod_type" : "STPC",
"tno" : "2099123112345",
"mod_mny" : "5000",
"rem_mny" : "10000",
"mod_desc" : "취소 사유를 입력하세요"
}
5파라미터
취소 파라미터
요청 파라미터
site_cd
KCP발급 사이트(상점)코드
테스트코드 : T0000
ex) "site_cd" : "T0000"
tno
NHN KCP 거래 고유번호
ex) "tno" : "24123456789012"
kcp_cert_info
KCP 인증서정보(직렬화)
관리자 페이지에서 발급받은 인증서 정보(직렬화 하여 요청)
ex) "kcp_cert_info" : "-----BEGIN CERTIFICATE-----MIIDgTCCAmmgAwIBAgIHkiG9w0…………Cay7pJNWXCnw4jIiBsTBa3q95RVRyMEcDgPwugMXPXGBwNoMOOpuQ==-----END CERTIFICATE-----"
kcp_sign_data
KCP 암호화데이터
site_cd + "^" + tno + "^" + mod_type
ex) "kcp_sign_data" : "QdwMF6y3GU1JTVkSv7Yn20CCCTeFrKkjvrdZOjShiFibFo...
cA0nyX+4HEUZ4Fy3U+htmkZqAfJljeujC1KAL5Flnzqbp5Tst5p5SvZ...
0qH7NSq0c6BpedDZb04w=="
mod_type
전체 승인취소 - STSC / 부분취소 - STPC
ex) "mod_type" : "STSC"
mod_mny
부분취소일 경우 부분취소금액
ex) "mod_mny" : "500"
rem_mny
부분취소일 경우 남은 원거래 금액
ex) "rem_mny" : "1004"
mod_desc
취소사유
ex) "mod_desc" : "고객변심"
tax_flag
복합과세 구문
복합과세 거래를 부분취소 할 때 사용하며 TG03 고정값이 사용됩니다.
복합과세 부분취소 시에는 요청금액이 부분 취소 요청 공금가액, 부가가치세, 비과세를 합한 금액과 동일해야 합니다.
(mod_mny = mod_tax_mny + mod_vat_mny + mod_free_mny)
ex) "tax_flag" : "TG03"
mod_tax_mny
부분취소 공급가액
부분취소 요청 금액 중(mod_mny) 공급가액에 해당하는 금액을 입력합니다.
ex) "mod_tax_mny" : "363"
mod_vat_mny
부분취소 부가가치세
부분취소 요청 금액 중(mod_mny) 부가가치세에 해당하는 금액을 입력합니다.
부가가치세는 부분취소 요청 금액 mod_mny 중 부분취소 비과세 금액을 제외한 금액의 10%입니다.
ex) "mod_vat_mny" : "37"
mod_free_mny
부분취소 비과세
부분취소 요청 금액 중(mod_mny) 비과세에 해당하는 금액을 입력합니다.
ex) "mod_free_mny" : "0"
응답 파라미터
res_cd
결과코드
정상 승인이 이루어졌을 경우 ‘0000’ 값 리턴
ex) "res_cd" : "0000"
res_msg
결과메세지
ex) "res_msg" : "정상처리"
tno
NHN KCP 거래 고유번호
※ 거래고유번호 전체로 사용 하시기 바랍니다.
(임의의 숫자나 파싱하여 사용 불가)
ex) "tno" : "24123456789012"
canc_time
취소시각
ex) "canc_time" : "20240131235959"
mod_mny
부분취소일 경우 부분취소금액
ex) "mod_mny" : "500"
rem_mny
부분취소일 경우 남은 원거래 금액
ex) "rem_mny" : "504"
mod_pcan_seq_no
부분취소 일련번호
ex) "mod_pcan_seq_no" : "24080546646043"
card_mod_mny
카드취소금액(부분취소일 경우)
부분취소금액 중 카드취소 금액
ex) "card_mod_mny" : "500"
coupon_mod_mny
쿠폰취소금액(부분취소일 경우)
부분취소금액 중 쿠폰취소 금액
ex) "coupon_mod_mny" : "0"