Browse Source

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

card007 5 years ago
parent
commit
442f19c52b

+ 4 - 4
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -142,7 +142,7 @@ public class TsfCartService {
 					}
 
 					// 금일 주문 수량 체크
-					if (!StringUtils.isEmpty(param.getCartGb()) && ("O".equals(param.getCartGb()) || "G".equals(param.getCartGb()))) {
+					if (!StringUtils.isEmpty(param.getCartGb()) && ("N".equals(param.getCartGb()) || "O".equals(param.getCartGb()) || "G".equals(param.getCartGb()))) {
 						int goodsCartCnt = 0;
 						if(param.getCustNo() != 0) {
 							goodsCartCnt = cartDao.getGoodsTodayOrderCnt(param);
@@ -203,7 +203,7 @@ public class TsfCartService {
 				}
 
 				// 금일 주문 수량 체크
-				if (!StringUtils.isEmpty(param.getCartGb()) && ("O".equals(param.getCartGb()) || "G".equals(param.getCartGb()))) {
+				if (!StringUtils.isEmpty(param.getCartGb()) && ("N".equals(param.getCartGb()) || "O".equals(param.getCartGb()) || "G".equals(param.getCartGb()))) {
 					int goodsCartCnt = 0;
 					if(param.getCustNo() != 0) {
 						goodsCartCnt = cartDao.getGoodsTodayOrderCnt(param);
@@ -307,7 +307,7 @@ public class TsfCartService {
 				cart.setCartGb(TscConstants.CartGb.CART.value());
 				// 같은 장바구니 상품 확인
 				cartSqList = cartDao.selectHasSetItemCartList(cart);
-			} else if (!StringUtils.isEmpty(cartInfos.iterator().next().getCartGb()) && "O".equals(cartInfos.iterator().next().getCartGb())) {
+			} else if (!StringUtils.isEmpty(cartInfos.iterator().next().getCartGb()) && ("N".equals(cartInfos.iterator().next().getCartGb()) || "O".equals(cartInfos.iterator().next().getCartGb()))) {
 				if ("P".equals(TsfSession.getFrontGb())) {
 					cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
 				} else {
@@ -376,7 +376,7 @@ public class TsfCartService {
 
 		if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "C".equals(params.iterator().next().getCartGb())) {
 			cart.setCartGb(TscConstants.CartGb.CART.value());
-		} else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && "O".equals(params.iterator().next().getCartGb())) {
+		} else if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && ("N".equals(params.iterator().next().getCartGb()) || "O".equals(params.iterator().next().getCartGb()))) {
 			if ("P".equals(TsfSession.getFrontGb())) {
 				cart.setCartGb(TscConstants.CartGb.PC_ORDER.value());
 			} else {

+ 39 - 4
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -353,6 +353,14 @@ public class TsfOrderService {
 					result.setOrdNo(Integer.parseInt(request.getParameter("ordr_idxx")));
 					result.setPayMeans(param.getPayMeans());
 				} else {
+					if(TscConstants.FrontGb.MOB.value().equals(TsfSession.getFrontGb()) && StringUtils.isNotEmpty(request.getParameter("param_opt_3"))) {
+						param.setPgOrdNo(request.getParameter("ordr_idxx"));
+						param.setOrdNo(Integer.parseInt(request.getParameter("param_opt_3")));
+					} else if(TscConstants.FrontGb.PC.value().equals(TsfSession.getFrontGb())) {
+						param.setPgOrdNo(request.getParameter("ordr_idxx"));
+						param.setOrdNo(param.getOrgOrdNo());
+					}
+
 					// 일반 KCP 결제
 					result = coreKcpService.kcpPayRequest(param, request, response);
 				}
@@ -825,7 +833,7 @@ public class TsfOrderService {
 			param.setIfYn("N");				// 인터페이스 송부 완료X (입금확인시 Y로 UPDATE 예정)
 		}
 
-		if(StringUtils.isEmpty(param.getOrdTelno())) {	param.setOrdTelno(param.getOrdPhnno());	}
+		if(StringUtils.isEmpty(param.getOrdTelno())) {		param.setOrdTelno(param.getOrdPhnno());	}
 		if(StringUtils.isEmpty(param.getRecipTelno())) {	param.setRecipTelno(param.getRecipPhnno());	}
 
 		param.setRecipZipcode(param.getRecipZipcode().replaceAll("-", ""));
@@ -873,7 +881,7 @@ public class TsfOrderService {
 			param.setIfYn("F");			// 인터페이스 송부 실패
 		}
 
-		//coreOrderDao.createInsurance(param);
+		coreOrderDao.updateInsurance(param);
 
 		return "SUCCESS";
 	}
@@ -913,6 +921,35 @@ public class TsfOrderService {
 		return "SUCCESS";
 	}
 	
+	public GagaMap nPayReq50(Order param) {
+		GagaMap result = new GagaMap();
+
+		try {
+			param.setFrontGb(TsfSession.getFrontGb());
+			param.setSiteCd(TscConstants.Site.STYLE24.value());
+			if(TsfSession.isLogin()) {
+				param.setCustNo(TsfSession.getInfo().getCustNo());
+			} else {
+				param.setCustNo(0);
+				param.setJsessionId(TsfSession.getSessionId());
+			}
+
+			// 장바구니 정보 조회
+			Collection<Order> cartList = coreOrderService.getCartGoodsList(param);
+
+
+
+			result.put("state", "sucess");
+		} catch(Exception e) {
+			result.put("state", "fail");
+			result.put("message", "주문실패");
+
+			e.printStackTrace();
+		}
+
+		return result;
+	}
+	
 	/**
 	 * 장바구니정보 주문번호 이력 등록
 	 * @param param
@@ -1021,6 +1058,4 @@ public class TsfOrderService {
 
 		return "SUCCESS";
 	}
-	
-	
 }

+ 12 - 15
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -777,6 +777,10 @@ public class TsfOrderController extends TsfBaseController {
 		*/
 
 		Payment payment = orderService.setPgDataInfo(order);
+		// 2021.05.10 추가
+		payment.setPayUrl("/create/preOrder");
+		payment.setRetUrl("/pay/result/response");
+				
 		mav.addObject("payment"				, payment);
 		mav.addObject("orderDetailList"		, order.getOrderDetailList());
 		mav.addObject("message"				, resultStr);
@@ -1238,19 +1242,6 @@ public class TsfOrderController extends TsfBaseController {
 			order.setJsessionId(TsfSession.getSessionId());
 			order.setCustNo(0);
 		}
-
-		log.info("order.getOrdNo()             ::: {}", order.getOrdNo());
-		log.info("order.getPgGb()              ::: {}", order.getPgGb());
-		log.info("order.getPayMeans()          ::: {}", order.getPayMeans());
-		log.info("order.getOrdChgSq()          ::: {}", order.getOrdChgSq());
-		log.info("order.getGoodsNm()           ::: {}", order.getGoodsNm());
-		log.info("order.getAddPayCost()        ::: {}", order.getAddPayCost());
-		log.info("order.getChgerNm()           ::: {}", order.getChgerNm());
-		log.info("order.getChgerPhnno()        ::: {}", order.getChgerPhnno());
-
-		// int ordNo = order.getOrdNo();
-
-		// order.setOrdNo(order.getOrdChgSq());
 		
 		order.setPayAmt(order.getAddPayCost());
 		order.setOrdNm(order.getChgerNm());
@@ -1273,6 +1264,10 @@ public class TsfOrderController extends TsfBaseController {
 
 		Payment payment = orderService.setPgDataInfo(order);
 		payment.setOrdChgSq(order.getOrdChgSq());
+		
+		// 2021.05.10 추가
+		payment.setPayUrl("/addPayment");
+		payment.setRetUrl("/addPay/result/response");
 		mav.addObject("payment", payment);
 		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
 
@@ -1309,10 +1304,12 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		param.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
 		param.setUpdNo(param.getCustNo());
-
+		
+		log.info("CHECK CHG_SQ ::: {}", param.getOrdChgSq());
+		
 		// 2. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);
-		order.setOrdNo(param.getOrdNo());
+		order.setOrdNo(param.getOrdNo());		
 		order.setOrdChgSq(param.getOrdChgSq());
 		
 		// 3. 추가결제 상품목록

+ 41 - 15
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -1,31 +1,31 @@
 package com.style24.front.biz.web;
 
-import java.io.PrintWriter;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
+import com.gagaframework.web.parameter.GagaMap;
 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;
-
 import kr.co.kcp.net.connection.ConnectionKCP;
 import kr.co.kcp.net.connection.dto.ParamData;
 import kr.co.kcp.net.connection.util.HttpJsonXml;
 import kr.co.kcp.net.connection.util.OpenHash;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.Collection;
 
 @Controller
 @RequestMapping("/pg")
@@ -169,4 +169,30 @@ public class TsfPgController extends TsfBaseController {
 		mav.setViewName(super.getDeviceViewName("pg/kcpOrder"));
 		return mav;
 	}
+
+	/**
+	 * 네이버 페이 결제 모듈
+	 * @param request
+	 * @param response
+	 * @param cart
+	 * @param model
+	 * @return
+	 * @throws Exception
+	 */
+	@ResponseBody
+	@PostMapping("/nPayReq")
+	public GagaMap nPayReq(@RequestBody Order param) {
+		GagaMap map = new GagaMap();
+		//for(Order param : params) {
+		//	log.info("CHECK NPAY INPUT >>>> {} / {} / {}", param.getGoodsCd(), param.getOptCd(), param.getGoodsQty());
+		//}
+
+		for(int cartSq : param.getCartSqArr()) {
+			log.info("CHECK NPAY INPUT >>>> {}", param.getCartSqArr());
+		}
+
+		map = orderService.nPayReq50(param);
+
+		return map;
+	}
 }

+ 1 - 0
src/main/resources/config/application-locd.yml

@@ -87,6 +87,7 @@ naverPay:
     button.key : 5DF64042-EF37-45F1-878E-67C7098135E6
     common.certification.key : s_3799db3bf4af-
     certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register
 
 # ERP (한세드림)
 erp:

+ 5 - 0
src/main/resources/config/application-run.yml

@@ -98,3 +98,8 @@ naverPay:
     payUrl:
         web : pay.naver.com
         mob : m.pay.naver.com
+    shop.id: istyle2401
+    button.key: 5DF64042-EF37-45F1-878E-67C7098135E6
+    common.certification.key: s_3799db3bf4af-
+    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    order.api.url: https://api.pay.naver.com/o/customer/api/order/v20/register

+ 1 - 0
src/main/resources/config/application-style.yml

@@ -87,3 +87,4 @@ naverPay:
     button.key: 5DF64042-EF37-45F1-878E-67C7098135E6
     common.certification.key: s_3799db3bf4af-
     certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register

+ 5 - 0
src/main/resources/config/application-tsit.yml

@@ -84,3 +84,8 @@ naverPay:
     payUrl:
         web : test-pay.naver.com
         mob : test-m.pay.naver.com
+    shop.id: istyle2401
+    button.key: 5DF64042-EF37-45F1-878E-67C7098135E6
+    common.certification.key: s_3799db3bf4af-
+    certification.key: 2BC5E173-2840-4B48-BC7D-FF770005DD76
+    order.api.url: https://test-api.pay.naver.com/o/customer/api/order/v20/register

+ 16 - 0
src/main/webapp/WEB-INF/views/mob/common/layout/MypageLayoutMob.html

@@ -16,6 +16,22 @@
 
 	<!-- CONTENT AREA -->
 	<th:block layout:fragment="content"></th:block>
+	<form id="createReview" name="createReview" th:action="@{'/mypage/review/create/form'}" th:method="post">
+		<input type="hidden" name="ordNo"/>
+		<input type="hidden" name="ordDtlNo"/>
+		<input type="hidden" name="goodsCd"/>
+		<input type="hidden" name="reviewStat"/>
+	</form>
+	<form id="addPaymentForm" name="addPaymentForm" th:action="@{'/order/addPaymentForm'}" th:method="post">
+		<input type="hidden" name="ordNo"/>
+		<input type="hidden" name="ordChgSq"/>
+	</form>
+	<form id="deliveryInfoForm" name="deliveryInfoForm" th:action="@{'/mypage/delivery/info/form'}" th:method="post">
+		<input type="hidden" name="ordNo"/>
+		<input type="hidden" name="ordDtlNo"/>
+		<input type="hidden" name="shipCompCd"/>
+		<input type="hidden" name="invoiceNo"/>
+	</form>
 	<!-- // CONTENT AREA -->
 
 	<!-- Footer -->

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageExchangeFormMob.html

@@ -297,6 +297,7 @@
 				<!-- 교환 배송비결제 필요할 경우 -->
 				<div class="required_group" id="addDeliveryFee" style="display:none">
 					<p>배송비 <span class="c_primary" id="addPayCost">0원</span> 추가 결제가 필요합니다.</p>
+					<input type="hidden" name="addPayCost"/>
 				</div>
 				<!-- //교환 배송비결제 필요할 경우 -->
 				<div class="btn_group btn_group_flex">

+ 75 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentCompleteMob.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : OrderAddPaymentCompleteMob.html
+ * @desc    : 추가결제완료화면 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+
+<main class="container od">
+	<section class="content completed">
+		<div class="inner wide">
+			<div class="info_complete">
+				<img src="/images/mo/ico_complete_check.png" alt="결제완료">
+				<p class="txt_box">결제가 완료되었습니다.</p>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="tbl_wrap pay_wrap">
+				<div class="tbl_tit"> 
+					<h3>결제 정보</h3>
+					<strong class="pay"><span th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></span>원</strong>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="227">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<td>
+								<dl>
+									<div>
+										<dt>반품/교환 배송비</dt>
+										<dd>
+											<div>
+												<span th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>결제방법</dt>
+										<dd>
+											<div>
+												신용카드
+											</div>
+										</dd>
+									</div>
+								</dl>
+							</td>
+						</tr>
+					</table>
+				</div>
+			</div>
+			<div class="btn_group btn_group_flex">
+				<div><button type="button" class="btn btn_dark" onclick="location.href='/'"><span>쇼핑 계속하기</span></button></div>
+			</div>
+		</div>
+	</section>
+</main>
+
+<script th:inline="javascript">
+</script>
+</th:block>
+</body>
+</html>

+ 280 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderAddPaymentFormMob.html

@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/DefaultLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : OrderAddPaymentMob.html
+ * @desc    : 추가결제화면 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.10   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+
+<!-- payment.js -->
+<script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
+<script type="text/javascript" src="/biz/payment.js"></script>
+
+<!-- 주문정보form -->
+<form id="order_info" name="order_info" method="post" action="/order/addPay/result/response" style="display:none"></form>
+<!-- //주문정보form -->
+
+<form class="form_wrap" name="addPayForm" id="addPayForm">
+	<input type="hidden" name="refundAmt" 		th:value="${refundAmt}">
+	<input type="hidden" name="ordNo" 			th:value="${ordNo}">
+	<input type="hidden" name="addPayCost" 		th:value="${addPayCost}">
+	<input type="hidden" name="ordChgSq" 		th:value="${ordChgSq}">
+	
+	<input type="hidden" name="chgGb" 			th:value="${chgGb}">
+	<input type="hidden" name="chgerPhnno" 		th:value="${chgerPhnno}">
+	<input type="hidden" name="chgerNm" 		th:value="${chgerNm}">
+	<input type="hidden" name="goodsNm" 		th:value="${goodsNm}">
+
+	<main class="container od">
+		<section class="content od_extra">
+			<form action="" class="form_wrap">
+				<!-- 주문내역 -->
+				<div class="inner wide">
+					<div class="foldGroup">
+						<ul>
+							<li class="fold_order">
+								<div class="fold_head">
+									<a href="javascript:void(0)">
+										<div>
+											<div class="fold_tit">
+												<th:block th:if="${chGb} == 'G680_20'">
+													<span pan>취소상품</span>
+												</th:block>
+												<th:block th:if="${chGb} == 'G680_30'">
+													<span pan>반품상품</span>
+												</th:block>
+												<th:block th:if="${chGb} == 'G680_40'">
+													<span pan>교환상품</span>
+												</th:block>
+											</div>
+										</div>
+									</a>
+								</div>
+								<div class="fold_cont" style="display: none;">
+									<div class="od_item_box">
+										<div class="part_goods">
+											<th:block th:each="goods, i : ${orderAddPayGoodsList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+												<div class="goods_section">
+													<div class="goods_detail">
+														<a href="">
+															<div class="thumb_box">
+																<img th:src="${imageUrl + '/' + goods.sysImgNm}" src="/" width="100%" alt="">
+															</div>
+															<div class="info_box">
+																<div class="od_name">
+																	<div class="brand">
+																		<span th:text="${goods.brandEnm} + ' ' + ${goods.brandKnm}"></span>
+																	</div>
+																	<div class="name" th:text="${goods.goodsNm}"></div>
+																</div>
+																<div class="od_opt">
+																	<div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
+																		<em th:text="${colorNm}"></em><em th:text="${goods.optCd2Arr[index.index]}"></em>
+																	</div>
+																</div>
+															</div>
+														</a>
+													</div>
+													<div class="od_calc">
+														<p class="count">수량 <em th:text="${goods.chgQty}"></em>개</p>
+														<p class="price">
+															<span class="selling_price"><em th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.chgQty, 1, 'COMMA')}"></em>원</span>
+														</p>
+													</div>
+												</div>
+											</th:block>
+										</div>
+									</div>
+									<div class="od_amount_box">
+										<dl>
+											<div>
+												<dt>환불상품금액</dt>
+												<dd th:text="|${#numbers.formatInteger(refundAmt, 1, 'COMMA')}원|"></dd>
+											</div>
+											<div>
+												<dt>반품/교환배송비</dt>
+												<dd th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}원|"></dd>
+											</div>
+										</dl>
+									</div>
+									<div class="totalprice_box">
+										<dl>
+											<dt>총 결제 예정 금액</dt>
+											<dd data-weight="price" data-font="lato"><span th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></span>원</dd>
+										</dl>
+									</div>
+									<div class="announce_txt">
+										<div class="announce_list">
+											<ul>
+												<li>환불할 상품금액이 반품/교환 배송비보다 적을 경우 배송비를 결제하신 후 남은 상품금액이 환불처리 됩니다.</li>
+											</ul>
+										</div>
+									</div>
+								</div>
+								<!-- //주문고객정보 -->
+							</li>
+						</ul>
+					</div>
+				</div>
+				<!-- //주문내역 -->
+				
+				<!-- 결제 정보 -->
+				<div class="inner">
+					<div class="tbl_wrap">
+						<div class="tbl_tit"> 
+							<h3>결제수단 선택</h3>
+						</div>
+						<div class="tbl tbl_radio">
+							<table>
+								<colgroup>
+									<col width="*">
+								</colgroup>   
+								<tbody>
+									<tr>
+										<th class="sr-only">신용카드</th>
+										<td>
+											<div class="form_field">
+												<input id="chk-1" type="radio" name="rdi-paynormal" value="KCP|G014_30" checked="checked">
+												<label for="chk-1"><span>신용카드</span></label>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<th class="sr-only">휴대폰결제</th>
+										<td>
+											<div class="form_field">
+												<input id="chk-2" type="radio" name="rdi-paynormal" value="KCP|G014_60">
+												<label for="chk-2"><span>휴대폰 결제</span></label>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+					</div>
+					<div class="area_paymentinfo">
+						<div class="paymentinfo">
+							<div class="payinfo_blk_wrap">
+								<a href="javascript:void(0);">
+									구매조건 확인 및 결제대행 서비스 약관 동의
+									<span>보기</span>
+								</a>
+								<div class="payinfo_blk_parent">
+									<div class="payinfo_blk">
+										<a href="javascript:void(0);">
+											개인정보 제공에 대한 동의
+											<span>보기</span>
+										</a>
+										<div class="infotxt">
+											개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.
+										</div>
+									</div>
+									<div class="payinfo_blk">
+										<a href="javascript:void(0);">
+											결제대행 서비스 약관 동의
+											<span>보기</span>
+										</a>
+										<div class="infotxt">
+											결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.
+										</div>
+									</div>
+								</div>
+							</div>
+							
+						</div>
+						
+						<div class="agree_payment">
+							위 주문내역을 확인 하였으며, 회원 본인은 <br> 결제에 동의합니다.
+						</div>
+					</div>
+				</div> 
+	
+				<!-- //결제 정보 -->
+				<div class="inner wide">
+					<div class="area_paybtn">
+						<div class="btn_group btn_group_flex">
+							<div>
+								<button type="button" class="btn btn_primary" id="btn_payment">동의 후 <span class="total_price" th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></span>원 결제하기</button>
+							</div>
+						</div>
+					</div>
+				</div>
+			</form>
+		</section>
+	</main>
+</form>
+
+<script th:inline="javascript">
+//결재하기
+$("#btn_payment").on("click", function(){
+	var paynormal			= $("input[name='rdi-paynormal']:checked").val();
+	var paynormalArr		= paynormal.split("|");
+	var pgGb				= paynormalArr[0];
+	var payMeans			= paynormalArr[1];
+	
+	// 주문데이타 생성
+	var orderData = {
+		"pgGb"					: pgGb
+		,"payMeans"				: payMeans // 네이버페이, 카카오페이
+		,"ordNo"				: $("#addPayForm input[name=ordNo]").val()
+		,"addPayCost"			: $("#addPayForm input[name=addPayCost]").val()
+		,"ordChgSq"				: $("#addPayForm input[name=ordChgSq]").val()
+		,"chgGb"				: $("#addPayForm input[name=chgGb]").val()
+		,"chgerPhnno"			: $("#addPayForm input[name=chgerPhnno]").val()
+		,"chgerNm"				: $("#addPayForm input[name=chgerNm]").val()
+		,"goodsNm"				: $("#addPayForm input[name=goodsNm]").val()
+	};
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/order/addPayment',
+		data		: JSON.stringify(orderData),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+		},
+		success 	: function(result) {
+			// 결재정보로드
+			$("#order_info").html(result);
+			
+			var pgGb = $("#order_info input[name=pgGb]").val();
+			
+			if (pgGb == "NAVER") {
+				fnNaverPaymentReady();
+			} else if (pgGb == "KAKAO") {
+				fnKakaoPaymentReady();
+			} else if (pgGb == "KCP" || pgGb == "PAYCO") {
+				jsf__pay(document.order_info);
+			}
+		}
+	});
+});
+</script>
+<script type="text/javascript">
+$(document).ready( function() {
+	//TabWrap, TabIndex
+	$(document).on('click', '.tabIndex li a', function() {
+		var $this = $(this),
+		$tabList = $this.parents('ul'),
+		_idx = $this.closest('li').index();
+	
+		$tabList.children().eq(_idx).addClass('active').siblings().removeClass('active');
+		$tabList.next().children().eq(_idx).addClass('active').siblings().removeClass('active');
+	});
+});
+</script>
+</th:block>
+</body>
+</html>

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

@@ -28,8 +28,8 @@
 	<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="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="PayUrl"			th:value="${'http:' + @environment.getProperty('domain.front') + payment.payUrl}" id="PayUrl"/>	<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
+	<input type="hidden" name="Ret_URL"			th:value="${'http:' + @environment.getProperty('domain.front') + payment.retUrl}">			<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
 
 	<input type="hidden" name="tablet_size"		value="1.0">						<!-- 화면 크기 조정 -->
 	<input type="hidden" name="response_type"	value="TEXT"/>						<!-- 결제 정보 등록시 응답 타입 ( 필드가 없거나 값이 '' 일경우 TEXT, 값이 XML 또는 JSON 지원 -->
@@ -51,6 +51,7 @@
 	<input type="hidden" name="cash_tr_code"	value=""/>
 	<input type="hidden" name="param_opt_1"		th:value="${payment.pgGb}" />		<!-- 모바일은 URL 로 변수 이동하므로 추가 변수로 KCP인지 PAYCO인지 송부 -->
 	<input type="hidden" name="param_opt_2"		th:value="${payment.shopUserId}" />	<!-- 모바일은 URL 로 변수 이동하므로 추가 변수로 custNo 송부 -->
+	<input type="hidden" name="param_opt_3"		th:value="${payment.ordNo}" />		<!-- 모바일은 URL 로 변수 이동하므로 추가 변수로 custNo 송부 -->
 
 	<input type="hidden" name="shop_user_id"	th:value="${payment.shopUserId}" />	<!-- 필수, 쇼핑몰회원ID 기관에 따라 RM 조치를 위해 쇼핑몰 관리 ID를 필수로 요청 -->
 

+ 74 - 35
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -372,9 +372,6 @@
 								<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
 									<script type="text/javascript" src="http://pay.naver.com/customer/js/naverPayButton.js" charset="UTF-8"></script>
 									<script type="text/javascript" >
-										//<![CDATA[
-										/*#if($!NPAY_USE_YN == "Y")
-										#if ($LANG == "ko")*/
 										/*버튼설정*/
 										naver.NaverPayButton.apply({
 											BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
@@ -385,47 +382,59 @@
 											BUY_BUTTON_HANDLER      : buy_nc,                   // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
 											"":""
 										});
-										/*#end
-										#end*/
 
 										/*네이버구매하기*/
 										function buy_nc(url) {
-											if ($('#goods_color').val().isBlank()) {
-												alert("$!{rc.getMessage(\"msg.alert.validation.select.color\")}");    /*컬러*/
-												return false;
-											}
-											if ($('#goods_size').val().isBlank()) {
-												alert("$!{rc.getMessage(\"msg.alert.validation.select.option\")}");   /*옵션*/
-												return false;
-											}
-											if ($('#size_qty').val().isBlank()) {
-												alert("$!{rc.getMessage(\"msg.alert.validation.select.qty\")}");      /*수량*/
-												return false;
-											}
+											let goodsCd = "[[${goodsInfo.goodsCd}]]";
+											let optCd = $(".opt_size .form_field input[type=radio]:checked").attr("optcd");
+											let goodsQty = $(".opt_count .number_count input[name=cea]").val();
+											let goodsType = "[[${goodsInfo.goodsType}]]";
 
-											/*네이버페이로 주문 정보를 등록하는 가맹점 페이지로 이동.*/
-											var itemCount   = $('#size_qty').val();
-											var itemUPrice  = "$!shopView.sale_amt";
-											var itemTPrice  = itemUPrice * itemCount;
+											if(goodsType == "G056_N") {
+												if (!goodsCd) {
+													mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
+													return false;
+												}
+												if (!optCd) {
+													mcxDialog.alert("상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요.");   /*옵션*/
+													return false;
+												}
+												if (!goodsQty || goodsQty < 1) {
+													mcxDialog.alert("구매 수량을 확인해주세요.");      /*수량*/
+													return false;
+												}
 
-											var params          = new Object();
-											params.ITEM_CD      = $('#goods_code').val();
-											params.ITEM_COUNT   = itemCount;
-											params.ITEM_OPTION  = $('#goods_color').val()+"/"+$('#goods_size').val();
-											params.BACK_URL     = location.href;
+												let compsList = [];
+												let obj = new Object();
+												obj.goodsCd = goodsCd;
+												obj.optCd = optCd;
+												obj.goodsQty = goodsQty;
+												obj.goodsType = goodsType;
+												obj.cartGb = "N";
+												obj.afLinkCd =$("#cartForm  input[name=afLinkCd]").val();
+												obj.ithrCd =$("#cartForm  input[name=ithrCd]").val();
+												obj.contentsLoc =$("#cartForm  input[name=contentsLoc]").val();
+												obj.planDtlSq = $("#cartForm  input[name=planDtlSq]").val();
+												compsList.push(obj);
 
-											var nPayReqUrl     = "/order/nPayReq.do";
+												// 장바구니담기
+												cfnAddCart(compsList);
+											} else {
+												// TODO 세트상품 추가 예정
+												alert("개발 중");
+											}
 
-											/*네이버페이 ajax*/
-											jQuery.ajax({
-												type        : 'POST',
-												url         : '/order/nPayReq.do',
-												data        : params,
+											/*$.ajax( {
+												type        : "POST",
+												url         : "/pg/nPayReq",
+												dataType    : 'json',
+												contentType : 'application/json',
+												data        : JSON.stringify(param),
 												async       : false,
 												error: function(xhr, status, error) {
-													alert(status + '; ' + error);
+													alert("!!  " + status + '; ' + error);
 												},
-												success     : function(result) {
+												success : function(result) {
 													if (result.state == "sucess") {
 														window.open('about:blank', 'popupView');
 														document.nPayForm.target = 'popupView';
@@ -435,7 +444,7 @@
 														alert(result.message);
 													}
 												}
-											});
+											});*/
 
 											//해당 페이지에서 주문 정보 등록 후 네이버페이 주문서 페이지로 이동.
 											//네이버페이로 주문 정보를 등록하는 가맹점 페이지로 이동.
@@ -443,6 +452,36 @@
 											return false;
 										}
 
+										function buy_nc_req(cartSqArr) {
+											alert(cartSqArr.length);
+											// buyList[0].backUrl = location.href;
+
+											$.ajax( {
+												type		: "POST",
+												url 		: "/pg/nPayReq",
+												dataType 	: 'json',
+												data		: {cartSqArr : JSON.stringify(cartSqArr)},
+												beforeSend : function(xhr, settings) {
+													xhr.setRequestHeader("AJAX"			, "true");
+													xhr.setRequestHeader('Accept'		, 'application/json');
+													xhr.setRequestHeader('Content-Type'	, 'application/json');
+												},
+												error: function(xhr, status, error) {
+													alert(status + '; ' + error);
+												},
+												success : function(result) {
+													if (result.state == "sucess") {
+														window.open('about:blank', 'popupView');
+														document.nPayForm.target = 'popupView';
+														document.nPayForm.action = "$!{NPAY_ORDER_URL}" + result.orderKey + "/" + result.resultNo;
+														document.nPayForm.submit();
+													} else {
+														alert(result.message);
+													}
+												}
+											});
+										}
+
 										/*네이버찜*/
 										/*function wishlist_nc(url) {
 											// 네이버페이로 찜 정보를 등록하는 가맹점 페이지 팝업 창 생성.

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

@@ -2,8 +2,8 @@
 <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="web/common/layout/DefaultLayoutWeb">
 <!--
  *******************************************************************************
- * @source  : OrderAddPaymentWeb.html
- * @desc    : 추가결제화면 Page
+ * @source  : OrderAddPaymentCompleteWeb.html
+ * @desc    : 추가결제완료화면 Page
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
@@ -75,7 +75,7 @@
 					</div>
 					<div class="sec_foot">
 						<div class="btn_group_md">
-							<button type="button" class="btn btn_dark btn_md"><span>쇼핑 계속하기</span></button>
+							<button type="button" class="btn btn_dark btn_md" onclick="location.href='/'"><span>쇼핑 계속하기</span></button>
 						</div>
 					</div>
 				</div>

+ 78 - 10
src/main/webapp/WEB-INF/views/web/order/OrderAddPaymentFormWeb.html

@@ -3,14 +3,14 @@
 <!--
  *******************************************************************************
  * @source  : OrderAddPaymentWeb.html
- * @desc    : 추가결제화면 Page
+ * @desc	: 추가결제화면 Page
  *============================================================================
  * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
+ * VER  DATE		 AUTHOR	  DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2021.04.13   jsh77b     최초 작성
+ * 1.0  2021.04.13   jsh77b	 최초 작성
  *******************************************************************************
  -->
 <body>
@@ -69,23 +69,81 @@
 								</div>
 								<div class="area_paymentinfo">
 									<div class="paymentinfo">
+										<!-- 210421_수정 : 테이블 추가. -->
 										<div class="payinfo_blk">
-											<a href="javascript:void(0);">개인정보 제공에 대한 동의<span>보기</span></a>
+											<a href="javascript:void(0)">
+												개인정보 제공에 대한 동의
+												<span>보기</span>
+											</a>
 											<div class="infotxt">
-												개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.개인정보제공에 대한 동의 내용입니다.
+												STYLE24는 다음과 같이 회원님의 개인정보를 제3자에게 제공합니다.
+												<table>
+													<colgroup>
+														<col width="25%">
+														<col width="*">
+														<col width="25%">
+														<col width="25%">
+													</colgroup>
+													<thead>
+														<tr>
+															<th>제공받는 자</th>
+															<th>제공하는 항목</th>
+															<th>제공 목적</th>
+															<th>보유 및 이용기간</th>
+														</tr>
+													</thead> 
+													<tbody>
+														<tr>
+															<td>
+																서울보증보험㈜, ㈜유세이프
+															</td>
+															<td>
+																구매자명, 구매자 생년월일,
+																구매자 성별, 구매자 연락처
+																(일반전화 및 핸드폰), 구매자
+																이메일, 주문번호,
+																배송지 정보, 주문 금액
+															</td>
+															<td>
+																쇼핑몰보증보험 가입 및 보험가입 제반 사항
+															</td>
+															<td>
+																개별서비스 제공기간
+															</td>
+														</tr>
+														<tr>
+															<td>
+																더비오유컴퍼니 주식회사
+															</td>
+															<td>
+																성명, 주소, 연락처
+															</td>
+															<td>
+																주문상품의 배송, 고객상담 및 불만처리
+															</td>
+															<td>
+																이용목적 달성 시 까지
+															</td>
+														</tr>
+													</tbody>
+												</table>
 											</div>
 										</div>
+										<!-- 210421_수정 : 테이블 추가. -->
 										<div class="payinfo_blk">
-											<a href="javascript:void(0);">결제대행 서비스 약관 동의<span>보기</span></a>
+											<a href="">
+												결제대행 서비스 약관 동의
+												<span>보기</span>
+											</a>
 											<div class="infotxt">
 												결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.결제대행서비스 약관 동의 내용입니다.
+											</div>
 										</div>
 									</div>
+									<div class="agree_payment">
+										위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다. (전자상거래법 제 8조 제2항) <!-- 210421_수정 : 텍스트 수정. -->
+									</div>
 								</div>
-								<div class="agree_payment">
-									위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다.
-								</div>
-							</div>
 							<div class="area_paybtn">
 								<div class="form_field">
 									<button type="button" class="btn btn_primary btn_block" id="btn_payment">
@@ -171,6 +229,16 @@
 </form>
 
 <script th:inline="javascript">
+// 개인정보동의 열고닫기
+$(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){
+	e.preventDefault();
+	$(this).parents('.payinfo_blk').toggleClass('on');
+	$(this).parents('.payinfo_blk').siblings('.payinfo_blk').removeClass('on'); //210428_수정 : 아코디언 추가.
+	var privacyToggle = $(this).find('span');
+	$(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
+	return false;
+});
+
 //결재하기
 $("#btn_payment").on("click", function(){
 	var paynormal			= $("input[name='rdi-paynormal']:checked").val();

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

@@ -11,6 +11,7 @@
 	<input type="hidden" name="ordChgSq"	th:value="${payment.ordChgSq}" />
 	<input type="hidden" name="pgGb"		th:value="${payment.pgGb}" />
 	<input type="hidden" name="payMeans"	th:value="${payment.payMeans}" />
+	<input type="hidden" name="orgOrdNo"	th:value="${payment.orgOrdNo}" />
 
 	<!-- 선택, 상점이름(영문으로 작성권장) -->
 	<input type="hidden" name="site_name"	th:value="${payment.siteName}" />

+ 2 - 0
src/main/webapp/ux/style24_link.js

@@ -338,6 +338,8 @@ function cfnAddCart(cartList) {
 					}
 					$("#directOrderForm").html(orderHtml);
 					$("#directOrderForm").submit();
+				} else if (result.cartGb == "N") {
+					buy_nc_req(result.cartSqList);
 				} else {
 					mcxDialog.alert("해당 기능을 사용 할 수 없습니다. 새로고침 후 다시 시도해주세요.");
 				}