초기소스
This commit is contained in:
237
src/main/webapp/WEB-INF/views/sopmal/ordr/PayKcpWebhook.jsp
Normal file
237
src/main/webapp/WEB-INF/views/sopmal/ordr/PayKcpWebhook.jsp
Normal file
@@ -0,0 +1,237 @@
|
||||
<%@ page language="java" contentType="text/html;charset=utf-8"%>
|
||||
<%!
|
||||
// null 값을 처리하는 메소드
|
||||
public String f_get_parm( String val )
|
||||
{
|
||||
if ( val == null ) val = "";
|
||||
return val;
|
||||
}
|
||||
%>
|
||||
<% request.setCharacterEncoding("utf-8"); %>
|
||||
<%
|
||||
//=============================================================================================
|
||||
// 01. Webhook
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// NHN KCP 에서는 에스크로 결제 건에 대한 상태가 변경되었을 때,
|
||||
// 가맹점의 DB에서 상태변경을 할 수 있도록 노티를 전달 드리고 있습니다.
|
||||
// ex) 고객 입금 완료 또는 결제 상태 변경 시(구매확인, 취소) 가맹점의 Webhook 페이지로 노티 데이터 전송
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// webhook 페이지의 주소를 아래 경로에 등록하여 노티를 받을 수 있습니다.
|
||||
//
|
||||
// [등록 방법]
|
||||
// 1. KCP 파트너관리자(partner.kcp.co.kr)에 로그인
|
||||
// 2. 좌측메뉴 [상점정보관리] -> [보안관리] -> [결제결과URL 설정]
|
||||
// 3. 결제결과URL 항목에 해당 페이지 URL 설정 후 저장
|
||||
//
|
||||
//=============================================================================================
|
||||
|
||||
|
||||
//=============================================================================================
|
||||
// 02. 데이터 수신
|
||||
//---------------------------------------------------------------------------------------------
|
||||
String site_cd = f_get_parm( request.getParameter( "site_cd" ) ); // 사이트 코드
|
||||
String tno = f_get_parm( request.getParameter( "tno" ) ); // KCP 거래번호
|
||||
String ordr_idxx = f_get_parm( request.getParameter( "ordr_idxx" ) ); // 주문번호
|
||||
String tx_cd = f_get_parm( request.getParameter( "tx_cd" ) ); // 업무처리 구분 코드
|
||||
String tx_tm = f_get_parm( request.getParameter( "tx_tm" ) ); // 업무처리 완료 시간
|
||||
|
||||
String ipgm_name = ""; // 주문자명
|
||||
String remitter = ""; // 입금자명
|
||||
String ipgm_mnyx = ""; // 입금금액
|
||||
String bank_code = ""; // 은행코드
|
||||
String account = ""; // 가상계좌 입금계좌번호
|
||||
String op_cd = ""; // 처리구분 코드
|
||||
String noti_id = ""; // 노티 아이디
|
||||
|
||||
String refund_nm = ""; // 환불계좌주명
|
||||
String refund_mny = ""; // 환불금액
|
||||
|
||||
String st_cd = ""; // 구매확인 코드
|
||||
String can_msg = ""; // 구매취소 사유
|
||||
|
||||
String waybill_no = ""; // 운송장 번호
|
||||
String waybill_corp = ""; // 택배 업체명
|
||||
|
||||
String cash_a_no = ""; // 현금영수증 승인번호
|
||||
String cash_a_dt = ""; // 현금영수증 승인시간
|
||||
String cash_no = ""; // 현금영수증 거래번호
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 02-1. 데이터 수신 - 가상계좌 입금 완료
|
||||
//---------------------------------------------------------------------------------------------
|
||||
if ( tx_cd.equals("TX00") )
|
||||
{
|
||||
ipgm_name = f_get_parm( request.getParameter( "ipgm_name" ) ); // 주문자명
|
||||
remitter = f_get_parm( request.getParameter( "remitter" ) ); // 입금자명
|
||||
ipgm_mnyx = f_get_parm( request.getParameter( "ipgm_mnyx" ) ); // 입금 금액
|
||||
bank_code = f_get_parm( request.getParameter( "bank_code" ) ); // 은행코드
|
||||
account = f_get_parm( request.getParameter( "account" ) ); // 가상계좌 입금계좌번호
|
||||
op_cd = f_get_parm( request.getParameter( "op_cd" ) ); // 처리구분 코드
|
||||
noti_id = f_get_parm( request.getParameter( "noti_id" ) ); // 노티 아이디
|
||||
cash_a_no = f_get_parm( request.getParameter( "cash_a_no" ) ); // 현금영수증 승인번호
|
||||
cash_a_dt = f_get_parm( request.getParameter( "cash_a_dt" ) ); // 현금영수증 승인시간
|
||||
cash_no = f_get_parm( request.getParameter( "cash_no" ) ); // 현금영수증 거래번호
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 02-2. 데이터 수신 - 가상계좌 환불
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX01") )
|
||||
{
|
||||
refund_nm = f_get_parm( request.getParameter( "refund_nm" ) ); // 환불계좌주명
|
||||
refund_mny = f_get_parm( request.getParameter( "refund_mny" ) ); // 환불금액
|
||||
bank_code = f_get_parm( request.getParameter( "bank_code" ) ); // 은행코드
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 02-3. 데이터 수신 - 구매확인/구매취소
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX02") )
|
||||
{
|
||||
st_cd = f_get_parm( request.getParameter( "st_cd" ) ); // 구매확인 코드
|
||||
|
||||
// 구매확인 상태가 구매취소인 경우
|
||||
if ( st_cd.equals("N") )
|
||||
{
|
||||
can_msg = f_get_parm( request.getParameter( "can_msg" ) ); // 구매취소 사유
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 02-4. 데이터 수신 - 배송시작
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX03") )
|
||||
{
|
||||
waybill_no = f_get_parm( request.getParameter( "waybill_no" ) ); // 운송장 번호
|
||||
waybill_corp = f_get_parm( request.getParameter( "waybill_corp" ) ); // 택배 업체명
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
|
||||
|
||||
//=============================================================================================
|
||||
// 03. 가맹점 DB 처리
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// 전달 받은 데이터를 활용하여 업체 DB를 처리하는 부분입니다.
|
||||
// 해당 부분은 업체 상황에 맞게 작업 진행 바랍니다.
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-1. 가상계좌 입금 DB 처리 작업 부분
|
||||
//
|
||||
// 가상계좌 입금 건은 은행 공동망을 통해 입금 취소가 이루어질 수 있습니다.
|
||||
// 이러한 경우엔 처리구분 코드 "op_cd" 를 "13" 으로 전달 드리고 있습니다.
|
||||
// "op_cd=13" 의 경우에는 입금완료가 되지 않은 경우이니 DB 처리 시 유의 바랍니다.
|
||||
//---------------------------------------------------------------------------------------------
|
||||
if ( tx_cd.equals("TX00") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-2. 가상계좌 환불 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
if ( tx_cd.equals("TX01") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-3. 구매확인/구매취소 DB 처리 작업 부분
|
||||
//
|
||||
// "st_cd" 는 구매확인과 취소를 체크하는 코드입니다.
|
||||
// 반드시 구매확인("Y")과 구매취소("N")의 값을 구분하여 처리하시기 바랍니다.
|
||||
// 시스템 자동 구매확인 처리 시에는 "st_cd" 값이 "S" 로 전달 됩니다.
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX02") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
if (st_cd == "N" )
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-4. 배송시작 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX03") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-5. 정산보류 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX04") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-6. 즉시취소 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX05") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-7. 취소 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX06") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// 03-8. 발급계좌해지 DB 처리 작업 부분
|
||||
//---------------------------------------------------------------------------------------------
|
||||
else if ( tx_cd.equals("TX07") )
|
||||
{
|
||||
//DB처리 코드 삽입
|
||||
}
|
||||
|
||||
//=============================================================================================
|
||||
|
||||
|
||||
//=============================================================================================
|
||||
// 04. result 값 설정
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// KCP 서버에서 데이터 전달 시 Webhook 페이지의 "result" 값을 확인 합니다.
|
||||
// 해당 값이 "0000"이 아닐 때, 최초 노티 포함 최대 10번까지 노티가 전송됩니다.
|
||||
//
|
||||
// DB 업데이트가 정상적으로 진행되었다면 "result" 값을 "0000" 으로 설정 바랍니다.
|
||||
//
|
||||
//=============================================================================================
|
||||
%>
|
||||
<html>
|
||||
<body>
|
||||
사이트 코드 : <%= site_cd%><br/>
|
||||
KCP 거래번호 : <%= tno%><br/>
|
||||
주문번호 : <%= ordr_idxx%><br/>
|
||||
업무처리 구분 코드 : <%= tx_cd%><br/>
|
||||
업무처리 완료 시간 : <%= tx_tm%><br/>
|
||||
주문자명 : <%= ipgm_name%><br/>
|
||||
입금자명 : <%= remitter%><br/>
|
||||
입금 금액 : <%= ipgm_mnyx%><br/>
|
||||
은행코드 : <%= bank_code%><br/>
|
||||
가상계좌 입금계좌번호 : <%= account%><br/>
|
||||
처리구분 코드 : <%= op_cd%><br/>
|
||||
노티 아이디 : <%= noti_id%><br/>
|
||||
현금영수증 승인번호 : <%= cash_a_no%><br/>
|
||||
현금영수증 승인시간 : <%= cash_a_dt%><br/>
|
||||
현금영수증 거래번호 : <%= cash_no%><br/>
|
||||
|
||||
<form><input type="hidden" name="result" value="0000"></form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user