Просмотр исходного кода

Merge branch 'master' of http://112.172.147.34:4936/style24/style24.doc

sowon4187 5 лет назад
Родитель
Сommit
eeac47a003

BIN
산출물/2.분석/Project기본정보현황.xlsx


+ 3 - 3
산출물/3.설계/05.DB-Object/03.db_function/FN_GET_BENEFIT_PRICE.sql

@@ -10,7 +10,7 @@ create FUNCTION FN_GET_BENEFIT_PRICE
 	) RETURNS int 
 /******************************************************************************
 /*
-/* Module       : 혜택
+/* Module       : 즉시쿠폰 적용
 /* Program Name : fn_get_benefit_price
 /* Description  : 상품의 현재판매가에 즉시할인상품쿠폰을 적용한 판매가를 반환한다.
 /*
@@ -31,7 +31,7 @@ create FUNCTION FN_GET_BENEFIT_PRICE
 /* 2020-12-02                        eskim    Initial Release
 /******************************************************************************/
 BEGIN
-DECLARE O_RET_VALUE int;
+	DECLARE O_RET_VALUE int;
 	DECLARE V_USABLE_CUST_GB VARCHAR(20);
     DECLARE V_USABLE_CUST_GRADE VARCHAR(20);
 
@@ -50,7 +50,7 @@ DECLARE O_RET_VALUE int;
    END IF;
 
    IF V_USABLE_CUST_GRADE IS NULL OR V_USABLE_CUST_GRADE = '' THEN 
-   		SET V_USABLE_CUST_GRADE = '00';
+   		SET V_USABLE_CUST_GRADE = 'G110_00';
    END IF;
 
   SELECT CASE WHEN I_USABLE_CUST_GB = '99' THEN I_CURR_PRICE

+ 3 - 2
산출물/3.설계/05.DB-Object/06.DDL/table.sql

@@ -4150,7 +4150,7 @@ CREATE TABLE TB_GOODS (
   GOODS_SNM          VARCHAR(4000)       NULL     COMMENT '상품검색명', -- 상품검색명
   GOODS_SNM1         VARCHAR(4000)       NULL     COMMENT '상품검색명1(사용자등록용)', -- 상품검색명1(사용자등록용)
   MAIN_COLOR_CD      VARCHAR(2)          NULL     COMMENT '대표색상코드', -- 대표색상코드
-  STYLE_YEAR         VARCHAR(4)          NOT NULL COMMENT '스타일연도', -- 스타일연도
+  STYLE_YEAR         VARCHAR(4)          NULL COMMENT '스타일연도', -- 스타일연도
   SEASON_CD          VARCHAR(20)         NOT NULL COMMENT '시즌코드(공통코드G006)', -- 시즌코드(공통코드G006)
   SEX_GB             VARCHAR(20)         NOT NULL COMMENT '성별구분(공통코드G007)', -- 성별구분(공통코드G007)
   GOODS_NUM          VARCHAR(20)         NULL     COMMENT '품번(자사상품만 사용)', -- 품번
@@ -4274,7 +4274,7 @@ CREATE TABLE TB_GOODS_HST (
   GOODS_SNM          VARCHAR(4000)       NULL     COMMENT '상품검색명', -- 상품검색명
   GOODS_SNM1         VARCHAR(4000)       NULL     COMMENT '상품검색명1(사용자등록용)', -- 상품검색명1(사용자등록용)
   MAIN_COLOR_CD      VARCHAR(2)          NULL     COMMENT '대표색상코드', -- 대표색상코드
-  STYLE_YEAR         VARCHAR(4)          NOT NULL COMMENT '스타일연도', -- 스타일연도
+  STYLE_YEAR         VARCHAR(4)          NULL COMMENT '스타일연도', -- 스타일연도
   SEASON_CD          VARCHAR(20)          NOT NULL COMMENT '시즌코드(공통코드G006)', -- 시즌코드(공통코드G006)
   SEX_GB             VARCHAR(20)          NOT NULL COMMENT '성별구분(공통코드G007)', -- 성별구분(공통코드G007)
   GOODS_NUM          VARCHAR(20)         NULL     COMMENT '품번(자사상품만 사용)', -- 품번
@@ -4603,6 +4603,7 @@ CREATE TABLE TB_GOODS_IMG (
   DISP_ORD       TINYINT UNSIGNED  NOT NULL DEFAULT 1 COMMENT '표시순서', -- 표시순서
   SYS_IMG_NM     VARCHAR(200) NOT NULL  COMMENT '시스템이미지', -- 시스템이미지
   DEFAULT_IMG_YN VARCHAR(1)   NULL COMMENT '대표이미지여부', -- 대표이미지여부
+  MOUSEOVER_IMG_YN CHAR(1)    NOT NULL DEFAULT 'N' COMMENT '마우스오버이미지여부', -- 마우스오버이미지여부
   REG_NO         INT UNSIGNED NOT NULL COMMENT '등록자번호', -- 등록자번호
   REG_DT         TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시' -- 등록일시
 )

BIN
산출물/3.설계/ERD/ST24.exerd


BIN
산출물/3.설계/ST24_TSIT-D202-프로그램목록(V1.9)-20210208.xlsx


BIN
산출물/4.구축/엑셀샘플/SF014_상품대량수정.xlsx


+ 127 - 0
산출물/본인인증모듈/IPIN_V2_JSP/샘플페이지/ipin_main.jsp

@@ -0,0 +1,127 @@
+<%@ page contentType="text/html;charset=euc-kr" %>
+<%@ page language="java" import="Kisinfo.Check.IPIN2Client" %>
+
+<%
+	/********************************************************************************************************************************************
+		NICE평가정보 Copyright(c) KOREA INFOMATION SERVICE INC. ALL RIGHTS RESERVED
+		
+		서비스명 : IPIN 가상주민번호 서비스 
+		페이지명 : IPIN 가상주민번호 서비스 호출 페이지
+	*********************************************************************************************************************************************/
+	
+	String sSiteCode	= "";		//  NICE평가정보에서 발급한 IPIN 서비스 사이트코드
+	String sSitePw		= "";		//  NICE평가정보에서 발급한 IPIN 서비스 사이트패스워드
+	
+	
+	/*
+	┌ sReturnURL 변수에 대한 설명  ─────────────────────────────────────────────────────
+		암호화된 인증결과 데이터를 리턴받을 URL을 프로토콜부터 풀주소로 정의해주세요.
+		
+		* URL은 반드시 프로토콜부터 입력해야 하며 외부에서 접속이 가능한 주소여야 합니다.
+		* 당사 샘플페이지 중 ipin_process 페이지가 인증결과 데이터를 리턴받는 페이지입니다.
+		
+		예 - http://www.test.co.kr/ipin_process.jsp
+			 https://www.test.kr:4343/ipin_process.jsp
+	└────────────────────────────────────────────────────────────────────
+	*/
+	String sReturnURL   = "http://.../ipin_process.jsp";
+	
+	
+	/*
+	┌ sCPRequest 변수에 대한 설명  ─────────────────────────────────────────────────────
+		CP요청번호는 추가적인 보안처리를 위한 변수입니다. 인증 후 인증결과 데이터와 함께 전달됩니다.
+		세션에 저장된 값과 비교해 데이터 위변조를 검사하거나, 사용자 특정용으로 이용할 수 있습니다.	
+		위변조 검사는 인증에 필수적인 처리는 아니며 보안을 위한 권고 사항입니다.		
+		
+		+ CP요청번호 설정 방법
+			1. 당사에서 배포된 모듈로 생성
+			2. 귀사에서 임의로 정의(최대 30byte) 
+	└────────────────────────────────────────────────────────────────────
+	*/
+	String sCPRequest = "";	
+	
+	
+	// 모듈객체 생성
+	IPIN2Client pClient = new IPIN2Client();	
+	
+	// CP요청번호 생성
+	sCPRequest = pClient.getRequestNO(sSiteCode);
+	
+	// CP요청번호 세션에 저장 
+	// : 저장된 값은 ipin_result 페이지에서 데이터 위변조 검사에 이용됩니다.
+	session.setAttribute("CPREQUEST" , sCPRequest);
+	
+	
+	// 인증요청 암호화 데이터 생성
+	int iRtn = pClient.fnRequest(sSiteCode, sSitePw, sCPRequest, sReturnURL);
+	
+	String sEncData		= "";	// 인증요청 암호화 데이터
+	String sRtnMsg		= "";	// 처리결과 메세지
+	
+	// 암호화 처리결과코드에 따른 처리
+	if (iRtn == 0)
+	{
+        // 인증요청 암호화 데이터 추출
+		sEncData = pClient.getCipherData();		
+		sRtnMsg = "정상 처리되었습니다.";
+	}
+	else if (iRtn == -1)
+	{
+		sRtnMsg = "암호화 시스템 오류 : 귀사 서버 환경에 맞는 모듈을 이용해주십시오.<br>오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
+	}
+	else if (iRtn == -2)
+	{
+		sRtnMsg = "암호화 처리 오류 : 최신 모듈을 이용해주십시오. 오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
+	}
+	else if (iRtn == -9)
+	{
+		sRtnMsg = "입력 정보 오류 : 암호화 함수에 입력된 파라미터 값을 확인해주십시오.<br>오류가 지속되는 경우, 함수 실행 직전 각 파라미터 값을 로그로 출력해 발송해주시기 바랍니다.";
+	}
+	else
+	{
+		sRtnMsg = "기타 오류: iRtn 값과 적용한 샘플소스를 발송해주시기 바랍니다.";
+	}
+
+%>
+
+<html>
+<head>
+	<meta charset="EUC-KR">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>NICE평가정보 가상주민번호 서비스</title>		
+	<script>
+		window.name ="Parent_window";
+
+		function fnPopup(){
+			window.open('', 'popupIPIN2', 'width=450, height=550, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbar=no');
+			document.form_ipin.target = "popupIPIN2";
+			document.form_ipin.action = "https://cert.vno.co.kr/ipin.cb";
+			document.form_ipin.submit();
+		}
+	</script>
+</head>
+<body>
+	iRtn : <%= iRtn %> - <%= sRtnMsg %><br><br>
+	인증요청 암호화 데이터 : [<%= sEncData %>]<br><br>
+
+
+	<!-- 아이핀 가상주민번호 서비스 팝업 호출 form -->
+	<form name="form_ipin" method="post">
+		<!-- 요청모드 (필수 데이터) -->
+		<input type="hidden" name="m" value="pubmain">	
+		<!-- 인증요청 암호화 데이터 -->
+		<input type="hidden" name="enc_data" value="<%= sEncData %>">		
+			<!-- 팝업 호출 이미지 버튼 -->	
+			<a href="javascript:fnPopup();">
+			<img src="http://image.creditbank.co.kr/static/img/vno/new_img/bt_17.gif" width=218 height=40 border=0>
+		</a>
+	</form>
+
+
+	<!-- 아이핀 가상주민번호 서비스 팝업 인증결과 전달 form -->
+	<form name="vnoform" method="post">
+		<!-- 인증결과 암호화 데이터 -->
+		<input type="hidden" name="enc_data">								
+	</form>
+</body>
+</html>

+ 94 - 0
산출물/본인인증모듈/IPIN_V2_JSP/샘플페이지/ipin_process.jsp

@@ -0,0 +1,94 @@
+<%@ page contentType="text/html;charset=euc-kr" %>
+
+<%
+	/*********************************************************************************************
+		NICE평가정보 Copyright(c) KOREA INFOMATION SERVICE INC. ALL RIGHTS RESERVED
+		
+		서비스명 : IPIN 가상주민번호 서비스 
+		페이지명 : IPIN 가상주민번호 서비스 인증결과 처리 페이지
+		
+		            리턴받은 인증결과 데이터를 호출 페이지로 전달하고 인증팝업을 닫는 페이지
+	**********************************************************************************************/
+	
+	// 인증결과 암호화 데이터 취득 (인증요청 암호화 데이터 값과 달라야 정상)
+	String sResponseData = requestReplace(request.getParameter("enc_data"), "encodeData");
+%>
+
+<html>
+<head>
+	<meta charset="EUC-KR">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>NICE평가정보 가상주민번호 서비스</title>
+	<script>
+		function fnLoad()
+		{
+			// 당사에서는 최상위를 'parent.opener.parent.document.'로 정의하였습니다
+			// 귀사의 환경 및 프로세스에 맞게 정의하시기 바랍니다
+			parent.opener.parent.document.vnoform.enc_data.value = "<%= sResponseData %>";
+			parent.opener.parent.document.vnoform.target = "Parent_window";
+			
+			// 인증결과 데이터를 최종 수신하는 결과페이지 URL (형식:절대주소, 필수항목:프로토콜) 
+			parent.opener.parent.document.vnoform.action = "http://.../ipin_result.jsp";
+			parent.opener.parent.document.vnoform.submit();
+			
+			self.close();
+		}
+	</script>
+</head>
+
+<%    
+	// 인증결과 암호화 데이터가 존재하는 경우
+	if (!sResponseData.equals("") && sResponseData != null)
+	{
+%>
+<body onLoad="fnLoad()">
+<%
+	// 인증결과 암호화 데이터가 존재하지 않는 경우
+	} else {
+%>
+<body onLoad="self.close()">
+<%
+	}
+%>
+
+<%!
+	// 문자열 점검 함수
+	public String requestReplace (String paramValue, String gubun) {
+        String result = "";
+        
+        if (paramValue != null) {
+        	
+        	paramValue = paramValue.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
+
+        	paramValue = paramValue.replaceAll("\\*", "");
+        	paramValue = paramValue.replaceAll("\\?", "");
+        	paramValue = paramValue.replaceAll("\\[", "");
+        	paramValue = paramValue.replaceAll("\\{", "");
+        	paramValue = paramValue.replaceAll("\\(", "");
+        	paramValue = paramValue.replaceAll("\\)", "");
+        	paramValue = paramValue.replaceAll("\\^", "");
+        	paramValue = paramValue.replaceAll("\\$", "");
+        	paramValue = paramValue.replaceAll("'", "");
+        	paramValue = paramValue.replaceAll("@", "");
+        	paramValue = paramValue.replaceAll("%", "");
+        	paramValue = paramValue.replaceAll(";", "");
+        	paramValue = paramValue.replaceAll(":", "");
+        	paramValue = paramValue.replaceAll("-", "");
+        	paramValue = paramValue.replaceAll("#", "");
+        	paramValue = paramValue.replaceAll("--", "");
+        	paramValue = paramValue.replaceAll("-", "");
+        	paramValue = paramValue.replaceAll(",", "");
+        	
+        	if(gubun != "encodeData"){
+        		paramValue = paramValue.replaceAll("\\+", "");
+        		paramValue = paramValue.replaceAll("/", "");
+            paramValue = paramValue.replaceAll("=", "");
+        	}        	
+        	result = paramValue;
+            
+        }
+        return result;
+  }
+%>
+</body>
+</html>

+ 162 - 0
산출물/본인인증모듈/IPIN_V2_JSP/샘플페이지/ipin_result.jsp

@@ -0,0 +1,162 @@
+<%@ page contentType="text/html;charset=euc-kr" %>
+<%@ page language="java" import="Kisinfo.Check.IPIN2Client" %>
+
+<%
+	/********************************************************************************************************************************************
+		NICE평가정보 Copyright(c) KOREA INFOMATION SERVICE INC. ALL RIGHTS RESERVED
+		
+		서비스명 : IPIN 가상주민번호서비스 서비스
+		페이지명 : IPIN 가상주민번호서비스 결과 페이지
+	*********************************************************************************************************************************************/
+	
+	String sSiteCode				= "";			// NICE평가정보에서 발급한 IPIN 서비스 사이트코드
+	String sSitePw					= "";			// NICE평가정보에서 발급한 IPIN 서비스 사이트패스워드
+			
+	// ipin_process에서 전달받은 인증결과 암호화 데이터 취득
+	String sResponseData = requestReplace(request.getParameter("enc_data"), "encodeData");    
+    
+	// ipin_main에서 세션에 저장한 CP요청번호 취득
+	String sCPRequest = (String)session.getAttribute("CPREQUEST");   
+		
+	// 모듈 객체 생성
+    IPIN2Client pClient = new IPIN2Client();
+	
+	// 인증결과 데이터 복호화
+	// : CP요청번호 파라미터 추가 시 세션 추출값과 전송된 데이터 비교해 데이터 위변조 검사 가능
+	// 예) int iRtn = pClient.fnResponse(sSiteCode, sSitePw, sResponseData, sCPRequest);	
+	int iRtn = pClient.fnResponse(sSiteCode, sSitePw, sResponseData);
+	
+	// 인증결과 추출
+	String sRtnMsg					= "";							// 처리결과 메세지
+	String sVNumber					= pClient.getVNumber();			// 가상주민번호 (13byte, 영숫자 조합)
+	String sName					= pClient.getName();			// 성명 (EUC-KR)
+	String sAgeCode					= pClient.getAgeCode();			// 연령대코드 (0~7: 가이드 참조)
+	String sGenderCode				= pClient.getGenderCode();		// 성별 (0:여성, 1: 남성)
+	String sBirthDate				= pClient.getBirthDate();		// 생년월일 (YYYYMMDD)
+	String sNationalInfo			= pClient.getNationalInfo();	// 내/외국인코드 (0:내국인, 1:외국인)
+	String sCPRequestNum			= pClient.getCPRequestNO();		// CP 요청번호
+	String sDupInfo					= pClient.getDupInfo();			// 중복가입확인값 (64byte, 개인식별값, DI:Duplicate Info) 
+	String sCoInfo1				    = pClient.getCoInfo1();			// 연계정보 확인값 (88byte, 개인식별값, CI:Connecting Information)
+	String sCIUpdate			    = pClient.getCIUpdate();		// CI 갱신정보 (1~: 가이드 참조)
+	String sAuthInfo			    = pClient.getAuthInfo();		// 본인확인수단 (0~4: 가이드 참조)
+
+    // 복호화 처리결과코드에 따른 처리
+    if (iRtn == 1)
+    {
+        /*
+            추출된 사용자 정보는 '성명'만 이용자에게 노출 가능합니다.
+        
+            사용자 정보를 다른 페이지에서 이용하는 경우,
+            암호화 데이터(sResponseData)를 전송 후 해당 페이지에서 복호화하는 형태로 이용해주십시오
+            
+            복호화된 사용자 정보를 전달할 경우, 
+                데이터가 유출되지 않도록 세션처리를 권장드립니다. (예: CP요청번호를 세션에 저장/취득하는 방식)
+            form의 hidden 태그를 이용한 전달방식은 데이터 유출 위험이 높으므로 지양해주시기 바랍니다.
+        */
+                
+        out.println("가상주민번호 : " + sVNumber + "<br>");
+        out.println("이름 : " + sName + "<br>");
+        out.println("연령대 코드 : " + sAgeCode + "<br>");
+        out.println("성별 코드 : " + sGenderCode + "<br>");
+        out.println("생년월일 : " + sBirthDate + "<br>");
+        out.println("내/외국인 정보 : " + sNationalInfo + "<br>");
+        out.println("CP 요청번호 : " + sCPRequestNum + "<br><br>");
+        out.println("중복가입 확인값 (DI) : " + sDupInfo + "<br>");
+        out.println("연계정보 확인값 (CI) : " + sCoInfo1 + "<br>");
+        out.println("CI 갱신정보 : " + sCIUpdate + "<br>");
+        out.println("본인확인 수단 : " + sAuthInfo + "<br>");
+        out.println("***** 복호화 된 정보가 정확한지 확인해 주시기 바랍니다. *****<br><br><br><br>");
+        
+        sRtnMsg = "정상 처리되었습니다.";
+        
+    }
+    else if (iRtn == -1 || iRtn == -4)
+    {
+        sRtnMsg = "복호화 시스템 오류 :<br> 귀사 서버 환경에 맞는 모듈을 이용해주십시오.<br>오류가 지속되는 경우 iRtn 값, 서버 환경정보, 사이트코드를 기재해 문의주시기 바랍니다.";
+    }
+    else if (iRtn == -6)
+    {
+        sRtnMsg =	"복호화 처리 오류: 당사에서 이용하는 charset인 EUC-KR이 정상적으로 받아지는 확인해주십시오. <br>오류가 지속되는 경우, 개발 가이드의 <b>\"결과 데이터 확인 방법\"</b>을 참고해주시기 바랍니다.";
+    }
+    else if (iRtn == -9)
+    {
+        sRtnMsg = "입력 정보 오류: 복호화 함수에 입력된 파라미터 값을 확인해주십시오.<br>오류가 지속되는 경우, 함수 실행 직전 각 파라미터 값을 로그로 출력해 발송해주시기 바랍니다.";
+    }
+    else if (iRtn == -12)
+    {
+        sRtnMsg = "CP 패스워드 불일치: IPIN 서비스 사이트패스워드를 확인해주시기 바랍니다.";
+    }
+    else if (iRtn == -13)
+    {
+        sRtnMsg = "CP 요청번호 불일치: 세션에 저장된 CP요청번호(sCPRequest) 값을 확인해주시기 바랍니다.";
+    }
+    else
+    {
+        sRtnMsg = "기타오류: iRtn 값 확인 후 NICE평가정보 전산 담당자에게 문의해주시기 바랍니다.";
+    }
+%>
+<%!
+public String requestReplace (String paramValue, String gubun) {
+        String result = "";
+        
+        if (paramValue != null) {
+        	
+        	paramValue = paramValue.replaceAll("<", "&lt;").replaceAll(">", "&gt;");
+
+        	paramValue = paramValue.replaceAll("\\*", "");
+        	paramValue = paramValue.replaceAll("\\?", "");
+        	paramValue = paramValue.replaceAll("\\[", "");
+        	paramValue = paramValue.replaceAll("\\{", "");
+        	paramValue = paramValue.replaceAll("\\(", "");
+        	paramValue = paramValue.replaceAll("\\)", "");
+        	paramValue = paramValue.replaceAll("\\^", "");
+        	paramValue = paramValue.replaceAll("\\$", "");
+        	paramValue = paramValue.replaceAll("'", "");
+        	paramValue = paramValue.replaceAll("@", "");
+        	paramValue = paramValue.replaceAll("%", "");
+        	paramValue = paramValue.replaceAll(";", "");
+        	paramValue = paramValue.replaceAll(":", "");
+        	paramValue = paramValue.replaceAll("-", "");
+        	paramValue = paramValue.replaceAll("#", "");
+        	paramValue = paramValue.replaceAll("--", "");
+        	paramValue = paramValue.replaceAll("-", "");
+        	paramValue = paramValue.replaceAll(",", "");
+        	
+        	if(gubun != "encodeData"){
+        		paramValue = paramValue.replaceAll("\\+", "");
+        		paramValue = paramValue.replaceAll("/", "");
+            paramValue = paramValue.replaceAll("=", "");
+        	}
+        	
+        	result = paramValue;
+            
+        }
+        return result;
+  }
+%>
+
+<html>
+<head>
+	<meta charset="EUC-KR">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>NICE평가정보 가상주민번호 서비스</title>		
+	<style type="text/css"> 
+		body
+		{
+			color: #7f7f7f;
+			font-family: "Dotum","DotumChe","Arial";
+			background-color: #ffffff;
+		}
+	</style>
+</head>
+
+<body>
+	iRtn [<%= iRtn %>] - <%= sRtnMsg %><br><br>
+
+    <!-- 인증결과 form -->
+    <form name="form_ipin_result" method="post">
+		<!-- 인증결과 암호화 데이터 -->
+		<input type="hidden" name="enc_data" value="<%= sResponseData %>"><br>
+	</form>
+</body>
+</html>

BIN
산출물/본인인증모듈/IPIN_V2_JSP/서비스 모듈/IBM 서버용/IPIN2Client.jar


BIN
산출물/본인인증모듈/IPIN_V2_JSP/서비스 모듈/IPIN2Client.jar


BIN
산출물/본인인증모듈/IPIN_V2_JSP/아이핀_개발가이드_JSP_V2.3.3.doc


BIN
산출물/본인인증모듈/IPIN_V2_JSP/아이핀_개발가이드_JSP_V2.3.3.pdf