Browse Source

Merge remote-tracking branch 'origin/xodud1202' into order

card007 5 năm trước cách đây
mục cha
commit
9af3f4ce9a

+ 13 - 0
pom.xml

@@ -115,6 +115,19 @@
 			<scope>system</scope>
 			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/IPIN2Client.jar</systemPath>
 		</dependency>
+		<!--KCP-->
+		<dependency>
+			<groupId>com.kcp</groupId>
+			<artifactId>kcp</artifactId>
+			<version>1.0</version>
+			<scope>system</scope>
+			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/jPpcliE.jar</systemPath>
+		</dependency>
+		<dependency>
+			<groupId>com.style24.front</groupId>
+			<artifactId>style24.front</artifactId>
+			<version>0.0.1-SNAPSHOT</version>
+		</dependency>
 		<!--//NICE 본인인증-->
 		<!-- \\\ WEB-INF lib -->
 	</dependencies>

+ 16 - 0
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -8,13 +8,18 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.Payment;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -31,6 +36,9 @@ public class TsfOrderService {
 	@Autowired
 	private TsfOrderDao orderDao;
 
+	@Autowired
+	private TscKcpService coreKcpService;
+
 	/**
 	 * 마이페이지 검색 기간 영역 설정
 	 *
@@ -206,6 +214,14 @@ public class TsfOrderService {
 		return mapList;
 	}
 
+	public void kcpTest(Payment param, HttpServletRequest request, HttpServletResponse response) {
+		try {
+			coreKcpService.kcpPayRequest(param, request, response);
+		} catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+
 	/**
 	 * 주문 상태 별 수량 조회
 	 *

+ 45 - 1
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -2,6 +2,9 @@ package com.style24.front.biz.web;
 
 import java.util.Collection;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,9 +17,11 @@ import com.style24.core.biz.service.TscFreegiftService;
 import com.style24.core.biz.service.TscOrderService;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCartService;
+import com.style24.front.biz.service.TsfOrderService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.Payment;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -36,6 +41,9 @@ public class TsfOrderController extends TsfBaseController {
 
 	@Autowired
 	private TscOrderService coreOrderService;
+
+	@Autowired
+	private TsfOrderService orderService;
 	
 	@Autowired
 	private TscFreegiftService coreFreegiftService;
@@ -231,7 +239,43 @@ public class TsfOrderController extends TsfBaseController {
 		
 		return mav;
 	}
-	
+
+	/**
+	 * 총알배송 가능 지역 체크
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 08
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/create/order")
+	public ModelAndView createOrder(Order order) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		return mav;
+	}
+
+	/**
+	 * 주문페이지
+	 *
+	 * @param
+	 * @return
+	 * @author jsh77b
+	 * @since 2021. 02. 02
+	 */
+	@SuppressWarnings({ "unchecked", "null" })
+	@RequestMapping(value = "/pay/result/response")
+	public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
+		ModelAndView mav = new ModelAndView();
+
+		orderService.kcpTest(param, request, response);
+		
+		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		return mav;
+	}
+
 	/**
 	 * 총알배송 가능 지역 체크
 	 *

+ 0 - 44
src/main/java/com/style24/persistence/domain/Coupon.java

@@ -1,44 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.style24.persistence.TscBaseDomain;
-
-import lombok.Data;
-
-/**
- * 장바구니
- *
- * @author xodud1202
- * @since 2021.01.22
- */
-@SuppressWarnings("serial")
-@Data
-public class Coupon extends TscBaseDomain {
-	// 쿠폰 정보
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] cartSqArr;		// 장바구니 일련번호 배열
-	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
-	private int[] currPrices;		// 상품가격 배열
-	private int cpnId;				// 쿠폰번호
-	private int custNo;				// 회원번호
-	private String custGb;			// 회원구분
-	private String custGrade;		// 회원등급
-	private int availDays;			// 쿠폰 다운로드 후 유효기간일
-	private int rdCpnId;			// 랜덤쿠폰번호
-	private int dcAmt;				// 할인적용금액
-	private int dcVal;				// 할인금액/율
-	private String useYn;			// 쿠폰 사용 여부
-	private String cpnNm;			// 쿠폰명
-	private String rdCpnNm;			// 시리얼쿠폰 키
-	private String usedDt;			// 쿠폰 사용완료 일자
-	private String result;			// 결과
-	private String pdGb;			// 기간/일수 구분 (P : 기간, D : 일수)
-	private String availStdt;		// 쿠폰 유효일
-	private String availEddt;		// 쿠폰 유효일
-	private String endAlimYn;		// 쿠폰 종료 알림 여부
-	private String frontGb;			// 화면 구분
-	private String availYn;			// 지급 받은 쿠폰 사용 가능 유무
-	private String dcWay;			// 할인금액/율 구분
-	private String cpnDesc;			// 쿠폰설명
-	private int downloadCnt;		// 다운로드수
-}

+ 14 - 6
src/main/resources/config/application-locd.yml

@@ -56,9 +56,17 @@ download.path: /WIDE/workspace/files/data
 
 # PG
 pg:
-    nicepay:
-        merchantId: nictest00m
-        merchantKey: 33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==
-        log.path: /WIDE/workspace/logs/wivis
-        account.cert.url: https://webapi.nicepay.co.kr/api/checkBankAccountAPI.jsp
-        vbank.refund.url: https://webapi.nicepay.co.kr/v2/api/merchant/vbank_refund.jsp
+    kcp:
+        log.dir: D:\\WIDE\\workspace\\webapps\\style24\\STYLE24\\style24.front\\src\\main\\webapp\\logs
+        gw:
+            url: testpaygw.kcp.co.kr
+            port: 8090
+        js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
+        server: false
+        site:
+            cd: T0007
+            key: 4Ho4YsuOZlLXUZUdOxM1Q7X__
+            name: KCP TEST SHOP
+        log.level: 3
+        module.type: 01
+        tx.mode: 0

BIN
src/main/webapp/WEB-INF/lib/ConnectionKCP.jar


BIN
src/main/webapp/WEB-INF/lib/jPpcliE.jar


+ 5 - 0
src/main/webapp/WEB-INF/views/web/cart/cartListAjaxFormWeb.html

@@ -389,6 +389,11 @@
 <div class="modal fade od_pop opt_modify_pop" id="optModifyPop" tabindex="-1" role="dialog" aria-labelledby="optModifyLabel" aria-hidden="true"></div>
 <!-- //옵션변경 팝업 -->
 
+
+<!-- KCP PG TEST -->
+<form name="order_info" method="post" action="pp_cli_hub.jsp" >
+</form>
+
 <script th:inline="javascript">
 	let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
 	let totDcAmt = [[${order.totDcAmt}]];

+ 65 - 0
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -24,6 +24,71 @@
 <script type="text/javascript" src="/ux/pc/js/jquery-ui.js"></script>
 
 <!-- xodud1202 -->
+	<script type="text/javascript">
+		/****************************************************************/
+		/* m_Completepayment  설명                                      */
+		/****************************************************************/
+		/* 인증완료시 재귀 함수                                         */
+		/* 해당 함수명은 절대 변경하면 안됩니다.                        */
+		/* 해당 함수의 위치는 payplus.js 보다먼저 선언되어여 합니다.    */
+		/* Web 방식의 경우 리턴 값이 form 으로 넘어옴                   */
+		/****************************************************************/
+		function m_Completepayment( FormOrJson, closeEvent )
+		{
+			var frm = document.order_info;
+
+			/********************************************************************/
+			/* FormOrJson은 가맹점 임의 활용 금지                               */
+			/* frm 값에 FormOrJson 값이 설정 됨 frm 값으로 활용 하셔야 됩니다.  */
+			/* FormOrJson 값을 활용 하시려면 기술지원팀으로 문의바랍니다.       */
+			/********************************************************************/
+			GetField( frm, FormOrJson );
+
+
+			if( frm.res_cd.value == "0000" )
+			{
+				alert("결제 승인 요청 전,\n\n반드시 결제창에서 고객님이 결제 인증 완료 후\n\n리턴 받은 ordr_chk 와 업체 측 주문정보를\n\n다시 한번 검증 후 결제 승인 요청하시기 바랍니다."); //업체 연동 시 필수 확인 사항.
+				/*
+					가맹점 리턴값 처리 영역
+				*/
+
+				frm.submit();
+			} else {
+				alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
+				closeEvent();
+			}
+		}
+	</script>
+
+	<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+
+	<script type="text/javascript">
+		/* 표준웹 실행 */
+		function jsf__pay( form ) {
+			try {
+				KCP_Pay_Execute( form );
+			} catch (e) {
+				/* IE 에서 결제 정상종료시 throw로 스크립트 종료 */
+			}
+		}
+
+		$(document).on("click", "#buyBtn", function() {
+			$.ajax( {
+				type: "POST",
+				url : '/order/create/order',
+				dataType : 'html',
+				data : {cartSq : 8},
+				success : function(result) {
+					$("#order_info").html(result);
+					jsf__pay(document.order_info);
+				}
+			});
+		});
+	</script>
+
+	<form id="order_info" name="order_info" method="post" action="/order/pay/result/response" >
+		<input type="button" id="buyBtn" value="테스트버튼" style="width:200px; height:200px;"/>
+	</form>
 
 <!-- // xodud1202 -->
 

+ 51 - 0
src/main/webapp/WEB-INF/views/web/pg/kcpOrderWeb.html

@@ -0,0 +1,51 @@
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+	<!-- 선택, 상점이름(영문으로 작성권장) -->
+	<input type="hidden" name="site_name" th:value="${@environment.getProperty('pg.kcp.site.name')}" />
+	<!-- 필수, 상점코드 -->
+	<input type="hidden" name="site_cd" th:value="${@environment.getProperty('pg.kcp.site.cd')}" />
+
+	<input type="hidden" name="payco_redirect"	value="Y" />				<!-- 페이코 진행시 -->
+	<input type="hidden" name="pay_mthod"		value="100000000000" />		<!-- 페이코 진행시 -->
+	<input type="hidden" name="req_tx"			value="pay" />				<!-- 필수, 요청의 종류를 구분하는 변수 결제요청페이지의 경우 ‘pay’로 설정 -->
+	<input type="hidden" name="ordr_idxx"		value="100" />				<!-- 필수, 상점 관리 주문번호 (유니크한 값 설정 권장) -->
+	<input type="hidden" name="pay_method"		value="100000000000" />		<!-- 필수, 결제수단코드(신용카드 : 100000000000, 계좌이체 : 010000000000, 가상계좌 : 001000000000, 포인트 : 000100000000, 휴대폰 : 000010000000, 상품권 : 000000001000, ARS : 000000000010) -->
+	<input type="hidden" name="good_name"		value="TEST NAME" />		<!-- 필수, 상품명 -->
+	<input type="hidden" name="good_mny"		value="2000" />				<!-- 필수, 주문요청금액 (※ 화폐단위가 ‘USD’ 일 경우, Cent까지 설정 ex ) $10.55 일 경우 콤마를 뺀 1055, $100 일 경우 10000로 설정 -->
+	<input type="hidden" name="buyr_name"		value="LTY" />				<!-- 필수, 주문자 이름 -->
+	<input type="hidden" name="buyr_mail"		value="test@test.com" />	<!-- 선택, 주문자 이메일 -->
+	<input type="hidden" name="buyr_tel1"		value="" />					<!-- 선택, 주문자 전화번호 -->
+	<input type="hidden" name="buyr_tel2"		value="010-7111-4489" />	<!-- 필수, 주문자 휴대폰번호 -->
+	<input type="hidden" name="currency"		value="WON" />				<!-- 필수, 원화 : WON / 달러 : USD -->
+	<input type="hidden" name="shop_user_id"	value="xodud1202" />		<!-- 필수, 쇼핑몰회원ID 기관에 따라 RM 조치를 위해 쇼핑몰 관리 ID를 필수로 요청 -->
+
+	<input type="hidden" name="quotaopt"        value="12"/>				<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
+
+	<!--
+		  ※ 필 수
+			  필수 항목 : 표준웹에서 값을 설정하는 부분으로 반드시 포함되어야 합니다
+			  값을 설정하지 마십시오
+	-->
+	<input type="hidden" name="res_cd"          value=""/>
+	<input type="hidden" name="res_msg"         value=""/>
+	<input type="hidden" name="enc_info"        value=""/>
+	<input type="hidden" name="enc_data"        value=""/>
+	<input type="hidden" name="ret_pay_method"  value=""/>
+	<input type="hidden" name="tran_cd"         value=""/>
+	<input type="hidden" name="use_pay_method"  value=""/>
+
+	<!-- 주문정보 검증 관련 정보 : 표준웹 에서 설정하는 정보입니다 -->
+	<input type="hidden" name="ordr_chk"        value=""/>
+
+	<!--  현금영수증 관련 정보 : 표준웹 에서 설정하는 정보입니다 -->
+	<input type="hidden" name="cash_yn"         value=""/>
+	<input type="hidden" name="cash_tr_code"    value=""/>
+	<input type="hidden" name="cash_id_info"    value=""/>
+
+	<!-- 2012년 8월 18일 전자상거래법 개정 관련 설정 부분 -->
+	<!-- 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131)  -->
+	<input type="hidden" name="good_expr" value="0">
+
+	<!-- 표준웹 설정 정보입니다(변경 불가) -->
+	<input type="hidden" name="module_type" th:value="${@environment.getProperty('pg.kcp.module.type')}" />
+
+</html>