Jelajahi Sumber

이태영 - 20210315 PG 임시커밋

xodud1202 5 tahun lalu
induk
melakukan
0cab7acf24

+ 13 - 1
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -18,6 +18,7 @@ import com.style24.core.biz.service.TscKakaoPayService;
 import com.style24.core.biz.service.TscKcpService;
 import com.style24.core.biz.service.TscNaverPayService;
 import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.session.TscSession;
 import com.style24.front.biz.dao.TsfOrderDao;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Coupon;
@@ -255,6 +256,11 @@ public class TsfOrderService {
 	public Payment orderPgPayResult(Payment param, HttpServletRequest request, HttpServletResponse response) {
 		Payment result = new Payment();
 
+		if(TscConstants.FrontGb.MOB.value().equals(TsfSession.getFrontGb()) && StringUtils.isEmpty(param.getPgGb())) {
+			param.setPgGb(TscConstants.PgGb.KCP.value());
+			param.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
+		}
+
 		try {
 			if(StringUtils.isEmpty(param.getPgGb())) {
 				throw new IllegalArgumentException("결제수단을 선택해주세요.");
@@ -270,13 +276,17 @@ public class TsfOrderService {
 				throw new IllegalArgumentException("결제 수단이 잘못 입력되었습니다. 새로고침 후 다시 시도해주세요.");
 			}
 
+			// 결제 수단이 없는 경우(KAKAO, NAVER) CARD로 세팅
+			if(StringUtils.isEmpty(param.getPayMeans())) {
+				result.setPayMeans(TscConstants.PayMeans.CREDIT_CARD.value());
+			}
+
 			result.setPaySq(param.getPaySq());
 			result.setUpdNo(param.getCustNo());
 			result.setRegNo(param.getCustNo());
 			result.setPayGb("O");
 
 			if(coreOrderDao.insertPayment(result) < 1) {
-				// TODO 전체 취소 로직 추가
 				if(TscConstants.PgGb.KCP.value().equals(param.getPgGb()) || TscConstants.PgGb.PAYCO.value().equals(param.getPgGb())) {
 					coreKcpService.kcpPayRollBack(result, request);
 				} else if (TscConstants.PgGb.KAKAO.value().equals(param.getPgGb())) {
@@ -287,6 +297,8 @@ public class TsfOrderService {
 					throw new IllegalArgumentException("결제 정보 저장 실패. 새로고침 후 다시 시작해주세요.");
 				}
 			}
+
+			coreKcpService.kcpPayRollBack(result, request);
 		} catch(Exception e) {
 			e.printStackTrace();
 			throw new IllegalArgumentException(e.getMessage());

+ 0 - 42
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -510,7 +510,6 @@ public class TsfOrderController extends TsfBaseController {
 			log.info("order.getFreegiftGoodsArr()  ::: {}", order.getFreegiftGoodsArr()[i]);
 		}
 
-		// TODO PG 데이터 세팅 처리 (order)
 		// 필수 데이터
 		// pgGb = 결제타입, payMeans = 결제수단, ordNo = 주문번호, goodsNm = 상품명, payAmt = 실결제금액, ordNm = 주문자명, ordPhnno = 휴대폰번호, custNo = 고객번호
 		// 선택 데이터
@@ -578,47 +577,6 @@ public class TsfOrderController extends TsfBaseController {
 		return mav;
 	}
 
-	/**
-	 * PG 결과 처리 메서드
-	 *
-	 * @param
-	 * @return
-	 * @author xodud1202
-	 * @since 2021. 03. 05
-	 */
-	@RequestMapping(value = "/pay/result/test")
-	public ModelAndView payResultTest(Payment param, HttpServletRequest request, HttpServletResponse response) {
-
-		ModelAndView mav = new ModelAndView();
-
-		// 1. 로그인체크 후 custNo 설정
-		if (TsfSession.isLogin()) {
-			param.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
-		} else {
-			param.setCustNo(0);
-		}
-
-		param.setUpdNo(param.getCustNo());
-
-		// 7. 결재정보등록(TB_PAYMENT)
-		param = orderService.orderPgPayResult(param, request, response);
-
-		log.info("param.getOrdNo() ::: {}", param.getOrdNo());
-
-		// TODO 주문정보 업데이트
-		// 1. 주문상태업데이트
-		// 2. 재고처리
-		// 3. 포인트사용처리
-		// 4. 예정포인트적립처리
-		// 5. 쿠폰사용처리
-		// 6. 상품권사용처리
-
-		mav.addObject("payment", param);
-
-		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
-		return mav;
-	}
-	
 	/**
 	 * 주문완료페이지
 	 *

+ 52 - 1
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -10,9 +10,13 @@ import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.style24.core.biz.service.TscOrderService;
+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;
 
@@ -25,11 +29,14 @@ import lombok.extern.slf4j.Slf4j;
 @Controller
 @RequestMapping("/pg")
 @Slf4j
-public class TsfPgController {
+public class TsfPgController extends TsfBaseController {
 	
 	@Autowired
 	private TscOrderService coreOrderService;
 
+	@Autowired
+	private TsfOrderService orderService;
+
 	@Autowired
 	private Environment env;
 
@@ -120,4 +127,48 @@ public class TsfPgController {
 
 		return null;
 	}
+
+	/**
+	 * 결제 PG 요청 완료
+	 *
+	 * @param
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 03. 05
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/pay/result/response")
+	public ModelAndView payResultResponse(Payment param, HttpServletRequest request, HttpServletResponse response) {
+
+		ModelAndView mav = new ModelAndView();
+
+		Order order = new Order();
+
+		// 1. 로그인체크 후 custNo 설정
+		if (TsfSession.isLogin()) {
+			param.setCustNo(TsfSession.getInfo().getCustNo()); // 고객번호등록
+			order.setCustNo(TsfSession.getInfo().getCustNo());
+		} else {
+			param.setCustNo(0);
+			order.setCustNo(0);
+		}
+
+		param.setUpdNo(param.getCustNo());
+
+		// 2. 결재정보등록(TB_PAYMENT)
+		param = orderService.orderPgPayResult(param, request, response);
+
+		order.setOrdNo(param.getOrdNo());
+		order.setSellGb("10");
+		order.setPgGb(param.getPgGb());
+		order.setPayMeans(param.getPayMeans());
+
+		// TODO 3. 주문정보 업데이트
+		coreOrderService.updateOrderInfo(order);
+
+		mav.addObject("payment", param);
+
+		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
+		return mav;
+	}
 }

+ 15 - 7
src/main/resources/config/application-run.yml

@@ -63,13 +63,21 @@ mail:
 
 # PG
 pg:
-    nicepay:
-        merchantId: wivismallm
-        merchantKey: pXTdML8rIaOVCeXQQsyRp1uCfTSTT/n80BV4LCqa+/yJM64MYIqeBCIQdH1rKhJRwSOsdCxVPa1V6hRxkkdJxg==
-        cancelPwd: wivis@2020
-        log.path: /app/was/applogs/nicepay
-        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: /WIDE/workspace/files/data/style24/logs/front
+        gw:
+            url: paygw.kcp.co.kr
+            port: 8090
+        user.type: PGNW
+        js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
+        server: true
+        site:
+            cd: U3476
+            key: 4aVa--.Xz8Fc78nwYPsrmmY__
+            name: ISTYLE
+        log.level: 3
+        module.type: 01
+        tx.mode: 0
 
 # 네이버페이 API
 naverPay:

+ 2 - 2
src/main/resources/config/application-tsit.yml

@@ -60,9 +60,9 @@ pg:
     kcp:
         log.dir: D:/TSIT/servers/bin/apache-tomcat/startup/style24/style24.front/kcpLogs/front
         gw:
-            url: http://testpaygw.kcp.co.kr
+            url: testpaygw.kcp.co.kr
             port: 8090
-        js.url: http://testpay.kcp.co.kr/plugin/payplus_web.jsp
+        js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
         server: false
         site:
             cd: T0000

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/cart/CartListFormMob.html

@@ -14,7 +14,7 @@
 <script type="text/javascript">
 	$(document).on("click", "#buyBtn", function() {
 		let orderData = {
-			pgGb		: "KCP"
+			pgGb		: "PAYCO"
 			, payMeans	: "G014_30"
 			, ordNo		: "5"
 			, goodsNm	: "상품 테스트"

+ 4 - 2
src/main/webapp/WEB-INF/views/mob/pg/kcpOrderMob.html

@@ -29,10 +29,12 @@
 	<input type="hidden" name="van_code"		value="">							<!-- 인증시 필요한 파라미터(변경불가)-->
 	<input type="hidden" name="quotaopt"		th:value="${payment.quotaopt}"/>	<!-- 최대 할부 개월 수(0 ~ 18까지 설정 가능) -->
 	<input type="hidden" name="ipgm_date"		value=""/>							<!-- 가상계좌설정 -->
-	<input type="hidden" name="Ret_URL"			value="http://ldfront.style24.com/order/pay/result/test">	<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+	<input type="hidden" name="PayUrl"			th:value="${'http:' + @environment.getProperty('domain.front') + '/order/create/preOrder'}" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
+	<input type="hidden" name="Ret_URL"			th:value="${'http:' + @environment.getProperty('domain.front') + '/pg/pay/result/response'}">			<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
+
 	<input type="hidden" name="tablet_size"		value="1.0">						<!-- 화면 크기 조정 -->
 	<input type="hidden" name="response_type"	value="TEXT"/>						<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
-	<input type="hidden" name="PayUrl"			value="http://ldfront.style24.com/order/create/preOrder" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
+
 	<input type="hidden" name="traceNo"			value="" id="traceNo"/>				<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
 	<input type="hidden" name="res_cd"			value=""/>							<!-- 결과코드 -->
 	<input type="hidden" name="res_msg"			value=""/>							<!-- 결과메세지 -->

+ 1 - 1
src/main/webapp/WEB-INF/views/web/common/fragments/HeadWeb.html

@@ -29,7 +29,7 @@
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/jquery-ui.css">
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/slick.css" />
 	<link rel="stylesheet" type="text/css" href="/ux/pc/css/swiper.min.css" />
-	
+
 	<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
 	<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
 	<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>

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

@@ -800,8 +800,8 @@ var paymentInfoSet = function(jsonData) {
 						,"delvFeeCdList"		: delvFeeCdList
 						,"shotDelvYn"			: shotDelvYn
 						,"entryNo"				: $("input[name='entryNo']").val()
-						,"pgGb"					: pgGb
-						,"payMeans"				: payMeans // 네이버페이, 카카오페이
+						,"pgGb"					: "PAYCO"
+						,"payMeans"				: "G014_30"
 						,"payAmt"				: $(".realOrdSumAmt").text()
 						,"ordNm"				: $(".custNm").text()
 						,"ordPhnno"				: $(".cellPhnno").text()
@@ -836,7 +836,7 @@ var paymentInfoSet = function(jsonData) {
 								fnNaverPaymentReady();
 							} else if (pgGb == "KAKAO") {
 								fnKakaoPaymentReady();
-							} else if (pgGb == "KCP") {
+							} else if (pgGb == "KCP" || pgGb == "PAYCO") {
 								jsf__pay(document.order_info);
 							}
 						}