فهرست منبع

Merge branch 'naverPay' into develop

card007 4 سال پیش
والد
کامیت
39ec94c12a

+ 2 - 0
src/main/java/com/style24/front/biz/web/TsfNoMemberController.java

@@ -733,6 +733,8 @@ public class TsfNoMemberController extends TsfBaseController {
 		// 4. 주문변경 기본정보 설정
 		result.set("ordNo"			, orderChange.getOrdNo());				// 주문번호
 		result.set("custNo"			, 0);									// 고객번호
+		result.set("regNo"			, 0);									// 등록자번호
+		result.set("updNo"			, 0);									// 수정자번호
 		result.set("chgReason"		, orderChange.getChgReason());			// 변경사유
 		result.set("chgMemo"		, orderChange.getChgMemo());			// 변경메모
 

+ 1 - 1
src/main/resources/config/application-dev.yml

@@ -69,7 +69,7 @@ pg:
             url: testpaygw.kcp.co.kr
             port: 8090
         js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
-        app.url: https://testpay.kcp.co.kr/shop/smart_phone_linux_jsp/sample/acnt/order_acnt_app.jsp?AppUrl=Kftc-bankpay
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: false
         site:
             cd: U3476

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

@@ -66,7 +66,7 @@ pg:
             url: testpaygw.kcp.co.kr
             port: 8090
         js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
-        app.url: https://testpay.kcp.co.kr/shop/smart_phone_linux_jsp/sample/acnt/order_acnt_app.jsp?AppUrl=Kftc-bankpay
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: false
         site:
             cd: U3476

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

@@ -68,6 +68,7 @@ pg:
             port: 8090
         user.type: PGNW
         js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: true
         site:
             cd: U3476

+ 1 - 1
src/main/resources/config/application-run.yml

@@ -92,7 +92,7 @@ pg:
             port: 8090
         user.type: PGNW
         js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
-        app.url: https://pay.kcp.co.kr/shop/smart_phone_linux_jsp/sample/acnt/order_acnt_app.jsp?AppUrl=Kftc-bankpay
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: true
         site:
             cd: U3476

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

@@ -78,6 +78,7 @@ pg:
             port: 8090
         user.type: PGNW
         js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: true
         site:
             cd: U3476

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

@@ -78,7 +78,7 @@ pg:
             port: 8090
         user.type: PGNW
         js.url: https://pay.kcp.co.kr/plugin/payplus_web.jsp
-        app.url: https://pay.kcp.co.kr/shop/smart_phone_linux_jsp/sample/acnt/order_acnt_app.jsp?AppUrl=Kftc-bankpay
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: true
         site:
             cd: U3476

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

@@ -74,7 +74,7 @@ pg:
             url: testpaygw.kcp.co.kr
             port: 8090
         js.url: https://testpay.kcp.co.kr/plugin/payplus_web.jsp
-        app.url: https://testpay.kcp.co.kr/shop/smart_phone_linux_jsp/sample/acnt/order_acnt_app.jsp?AppUrl=Kftc-bankpay
+        app.url: style24://order/pay/result/response?AppUrl=Kftc-bankpay
         server: false
         site:
             cd: U3476

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

@@ -516,7 +516,6 @@
 				</div>
 			</div>
 		</div>
-
 		<div class="inner wide">
 			<div class="od_calc_wrap" id="bottomOrderArea">
 				<button type="button" class="btn btn_dark"><span>합계 <em class="realOrderAmtText" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}">0</em>원</span></button>

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

@@ -20,12 +20,95 @@
 <th:block layout:fragment="content">
 
 	<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
+	<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+	<form id="nPayForm" name="nPayForm"></form>
 
 	<main role="" id="" class="container od">
 		<section class="content shopping_bag" id="cartAjaxList">
 			<!-- 장바구니 내용 -->
 		</section>
 
+		<div class="inner" style="margin-top:10px;">
+			<th:block th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
+				<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
+					<script th:inline="javascript">
+						if(!wcs_add) var wcs_add = {};
+						wcs_add["wa"] = [[${@environment.getProperty('naverPay.common.certification.key')}]];
+						wcs.inflow("style24.com");
+						wcs_do();
+					</script>
+
+					<script type="text/javascript" >
+						/*버튼설정*/
+						naver.NaverPayButton.apply({
+							BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
+							TYPE                    : "MA",                      // 버튼 모음 종류 설정
+							COLOR                   : 1,                        // 버튼 모음의 색 설정
+							COUNT                   : 1,                        // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
+							ENABLE                  : "Y",                      // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
+							BUY_BUTTON_HANDLER      : buy_nc,                   // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
+							"":""
+						});
+						
+						/*네이버구매하기*/
+						function buy_nc() {
+							// 자사 일반 상품 정보
+							let cartSqArr = [];
+							
+							$("#cartListForm .cartInfo").each(function(idx, item) {
+								if ($(item).find('input[name=cartSqArr]').is(':checked')) {
+									cartSqArr.push($(item).find('input[name=cartSqArr]').val());
+								}
+							});
+							
+							// 네이버페이 주문형 결제
+							buy_nc_req(cartSqArr);
+							
+							return false;
+						}
+						
+						function buy_nc_req(cartSqArr) {
+							let data = {  cartSqArr : cartSqArr
+								, backUrl : location.href
+								, goodsUrl : _PAGE_GOODS_DETAIL
+							};
+							let jsonData = JSON.stringify(data);
+							
+							$.ajax( {
+								type		: "POST",
+								url 		: "/pg/nPayReq",
+								dataType 	: 'json',
+								data		: jsonData,
+								beforeSend : function(xhr, settings) {
+									xhr.setRequestHeader("AJAX"			, "true");
+									xhr.setRequestHeader('Accept'		, 'application/json');
+									xhr.setRequestHeader('Content-Type'	, 'application/json');
+								},
+								error: function(xhr, status, error) {
+									mcxDialog.alert(status + '; ' + error);
+								},
+								success : function(result) {
+									if (result.state == "sucess") {
+										enp('create', 'conversion', 'is24', { device: 'M', paySys: 'naverPay' });	// 모비온 네이버주문형 클릭시
+										document.nPayForm.action = result.npayOrderUrl + "/" + result.orderKey + "/" + result.resultNo;
+										document.nPayForm.submit();
+									} else {
+										mcxDialog.alert(result.message);
+									}
+								}
+							});
+						}
+						
+						<!-- 구매불가 -->
+						function not_buy_nc() {
+							mcxDialog.alert("죄송합니다. 네이버페이로 구매가 불가한 상품입니다.");
+							return false;
+						}
+					</script>
+				</th:block>
+			</th:block>
+		</div>
+
 		<th:block th:if="${cartSize>0}">
 			<div class="od_recommend" style="background-color:white;">
 				<h3>추천상품</h3>

+ 1 - 3
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html

@@ -341,9 +341,7 @@
 													if (result.state == "success") {
 														$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 														$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
-														
-														window.open('about:blank', 'popupView');
-														document.nPayWishForm.target = 'popupView';
+
 														document.nPayWishForm.action = result.actionMobile;
 														document.nPayWishForm.submit();
 													} else {

+ 77 - 4
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -194,6 +194,82 @@
 				</div>
 			</div>
 
+			<div class="inner" th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
+				<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
+					<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+					<script type="text/javascript" >
+						/*버튼설정*/
+						naver.NaverPayButton.apply({
+							BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
+							TYPE                    : "MA",                     // 버튼 모음 종류 설정
+							COLOR                   : 1,                        // 버튼 모음의 색 설정
+							COUNT                   : 2,                        // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
+							ENABLE                  : "Y",                      // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
+							BUY_BUTTON_HANDLER      : buy_nc,                   // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
+							WISHLIST_BUTTON_HANDLER : wishlist_nc,              // 찜하기 버튼 이벤트 Handler 함수 등록
+							"":""
+						});
+						
+						/*네이버구매하기*/
+						function buy_nc(url) {
+							$(".container").addClass('btPop_open');
+						}
+						
+						<!-- 구매불가 -->
+						function not_buy_nc() {
+							mcxDialog.alert("죄송합니다. 네이버페이로 구매가 불가한 상품입니다.");
+							return false;
+						}
+						
+						<!-- 찜하기 -->
+						function wishlist_nc() {
+							let goodsCd			= "[[${goodsInfo.goodsCd}]]";
+							let goodsNm			= "[[${goodsInfo.goodsNm}]]";
+							let colorCd			= "[[${goodsInfo.colorCd}]]";
+							let currPrice		= "[[${goodsInfo.currPrice}]]";
+							let sysImgNm		= "[[${goodsInfo.sysImgNm}]]";
+							let selfGoodsYn		= "[[${goodsInfo.selfGoodsYn}]]";
+							
+							let data = {};
+							data.goodsCd		= goodsCd;
+							data.goodsNm		= goodsNm;
+							data.colorCd		= colorCd;
+							data.currPrice		= currPrice;
+							data.sysImgNm		= sysImgNm;
+							data.selfGoodsYn	= selfGoodsYn;
+							
+							let jsonData = JSON.stringify(data);
+							
+							$.ajax( {
+								type		: "POST",
+								url 		: "/pg/create/npay/zzim",
+								dataType 	: 'json',
+								data		: jsonData,
+								beforeSend : function(xhr, settings) {
+									xhr.setRequestHeader("AJAX"			, "true");
+									xhr.setRequestHeader('Accept'		, 'application/json');
+									xhr.setRequestHeader('Content-Type'	, 'application/json');
+								},
+								error: function(xhr, status, error) {
+									mcxDialog.alert(status + '; ' + error);
+								},
+								success : function(result) {
+									if (result.state == "success") {
+										$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
+										$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
+										
+										document.nPayWishForm.action = result.actionMobile;
+										document.nPayWishForm.submit();
+									} else {
+										mcxDialog.alert(result.message);
+									}
+								}
+							});
+						}
+					</script>
+				</th:block>
+			</div>
+
 			<div class="inner" th:if="${(cardInfoList != null and !cardInfoList.empty) or
 									(goodsCouponList != null and !goodsCouponList.empty) or
 									(tmtbList != null and !tmtbList.empty) or
@@ -1088,7 +1164,7 @@
 									/*버튼설정*/
 									naver.NaverPayButton.apply({
 										BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
-										TYPE                    : "MA",                      // 버튼 모음 종류 설정
+										TYPE                    : "MA",                     // 버튼 모음 종류 설정
 										COLOR                   : 1,                        // 버튼 모음의 색 설정
 										COUNT                   : 2,                        // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
 										ENABLE                  : "Y",                      // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
@@ -1286,10 +1362,7 @@
 												if (result.state == "success") {
 													$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 													$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
-													console.log(result);
 
-													window.open('about:blank', 'popupView');
-													document.nPayWishForm.target = 'popupView';
 													document.nPayWishForm.action = result.actionMobile;
 													document.nPayWishForm.submit();
 												} else {

+ 92 - 76
src/main/webapp/WEB-INF/views/web/cart/CartListAjaxFormWeb.html

@@ -20,7 +20,7 @@
 		<input type="hidden" id="ableCpnNm" value="" />
 
 		<!-- CONT-BODY -->
-		<div class="od_cont">
+		<div>
 			<div class="sec_head shotDelvSelect">
 				<div class="tbl type4">
 					<table>
@@ -448,71 +448,71 @@
 				</div>
 			</div>
 		</div>
-		<div class="od_side">
-			<div class="area_order">
-				<div class="tit_box">
-					<h3>결제 정보</h3>
-					<span><em class="number checkSelectCartListCnt" th:text="${order.totCartCnt}"></em>개의 상품</span>
-				</div>
-				<div class="od_amount_box">
-					<dl>
-						<div>
-							<dt>상품금액</dt>
-							<dd><em class="sumListPrice" th:text="${#numbers.formatInteger(order.sumListPrice, 1, 'COMMA')}"></em>원</dd>
-						</div>
-						<div>
-							<dt>배송비</dt>
-							<dd><em class="totDelvFee" th:text="${#numbers.formatInteger(order.totDelvFee, 1, 'COMMA')}"></em> 원</dd>
-						</div>
-						<div>
-							<dt>할인금액</dt>
-							<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em> 원</span></dd>
-						</div>
-					</dl>
-				</div>
-				<div class="totalprice_box">
-					<dl>
-						<dt>총 결제 예정 금액</dt>
-						<dd><span class="sumRealPayAmt" id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}"></span> 원</dd>
-					</dl>
-				</div>
-				<div class="btn_box">
-					<button class="btn btn_primary btn_block btn_md" onclick="fnSubmitNoMember('all'); return false;"><span>구매하기</span></button>
-				</div>
-			</div>
-			<div class="area_salecoupon">
-				<h4>할인코드 입력</h4>
-				<div class="form_field">
-					<div class="input_wrap form_full">
-						<label class="input_label sr-only">할인코드입력</label>
-						<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">
-					</div>
-					<button type="button" class="btn btn_dark btn_sm" onclick="serialCpnApply()"><span>적용</span></button>
-				</div>
-				<div class="coupon_box">
-					<div class="coupon">
-						<div>
-							<p class="cp_name"></p>
-							<p class="cp_cont">
-								<!--<span><em>12,399,900</em>원</span>
-								<span><em>40</em>%</span>-->
-								<span class="cp_dc_val"></span>
-							</p>
-							<p class="cp_condition">
-								<!--500,000원 이상 구매 시 최대 50,000원 할인
-								<span><em class="tag primary_line">99장 보유</em></span>-->
-							</p>
-						</div>
-						<p class="cp_date">
-							<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>
-						</p>
-					</div>
-					<button type="button" class="btn_underline" id="btn_cartCouponInfo_pop">
-						<span>사용안내</span>
-					</button>
-				</div>
-			</div>
-		</div>
+<!--		<div class="od_side">-->
+<!--			<div class="area_order">-->
+<!--				<div class="tit_box">-->
+<!--					<h3>결제 정보</h3>-->
+<!--					<span><em class="number checkSelectCartListCnt" th:text="${order.totCartCnt}"></em>개의 상품</span>-->
+<!--				</div>-->
+<!--				<div class="od_amount_box">-->
+<!--					<dl>-->
+<!--						<div>-->
+<!--							<dt>상품금액</dt>-->
+<!--							<dd><em class="sumListPrice" th:text="${#numbers.formatInteger(order.sumListPrice, 1, 'COMMA')}"></em>원</dd>-->
+<!--						</div>-->
+<!--						<div>-->
+<!--							<dt>배송비</dt>-->
+<!--							<dd><em class="totDelvFee" th:text="${#numbers.formatInteger(order.totDelvFee, 1, 'COMMA')}"></em> 원</dd>-->
+<!--						</div>-->
+<!--						<div>-->
+<!--							<dt>할인금액</dt>-->
+<!--							<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt" th:text="${#numbers.formatInteger(order.totDcAmt, 1, 'COMMA')}"></em> 원</span></dd>-->
+<!--						</div>-->
+<!--					</dl>-->
+<!--				</div>-->
+<!--				<div class="totalprice_box">-->
+<!--					<dl>-->
+<!--						<dt>총 결제 예정 금액</dt>-->
+<!--						<dd><span class="sumRealPayAmt" id="sumRealPayAmt" th:text="${#numbers.formatInteger(order.sumRealPayAmt + order.totDelvFee, 1, 'COMMA')}"></span> 원</dd>-->
+<!--					</dl>-->
+<!--				</div>-->
+<!--				<div class="btn_box">-->
+<!--					<button class="btn btn_primary btn_block btn_md" onclick="fnSubmitNoMember('all'); return false;"><span>구매하기</span></button>-->
+<!--				</div>-->
+<!--			</div>-->
+<!--			<div class="area_salecoupon">-->
+<!--				<h4>할인코드 입력</h4>-->
+<!--				<div class="form_field">-->
+<!--					<div class="input_wrap form_full">-->
+<!--						<label class="input_label sr-only">할인코드입력</label>-->
+<!--						<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">-->
+<!--					</div>-->
+<!--					<button type="button" class="btn btn_dark btn_sm" onclick="serialCpnApply()"><span>적용</span></button>-->
+<!--				</div>-->
+<!--				<div class="coupon_box">-->
+<!--					<div class="coupon">-->
+<!--						<div>-->
+<!--							<p class="cp_name"></p>-->
+<!--							<p class="cp_cont">-->
+<!--								&lt;!&ndash;<span><em>12,399,900</em>원</span>-->
+<!--								<span><em>40</em>%</span>&ndash;&gt;-->
+<!--								<span class="cp_dc_val"></span>-->
+<!--							</p>-->
+<!--							<p class="cp_condition">-->
+<!--								&lt;!&ndash;500,000원 이상 구매 시 최대 50,000원 할인-->
+<!--								<span><em class="tag primary_line">99장 보유</em></span>&ndash;&gt;-->
+<!--							</p>-->
+<!--						</div>-->
+<!--						<p class="cp_date">-->
+<!--							<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>-->
+<!--						</p>-->
+<!--					</div>-->
+<!--					<button type="button" class="btn_underline" id="btn_cartCouponInfo_pop">-->
+<!--						<span>사용안내</span>-->
+<!--					</button>-->
+<!--				</div>-->
+<!--			</div>-->
+<!--		</div>-->
 		<div class="clear"></div>
 		<!-- // CONT-BODY -->
 	</form>
@@ -562,6 +562,12 @@
 	<script th:inline="javascript">
 		let sumRealPayAmt = [[${order.sumRealPayAmt + order.totDelvFee}]];
 		let totDcAmt = [[${order.totDcAmt}]];
+		let checkSelectCartListCnt = [[${order.totCartCnt}]];
+		let sumListPrice = [[${order.sumListPrice}]];
+		let totDelvFee = [[${order.totDelvFee}]];
+		let shotCartList = [[${order.shotCartList}]];
+		let wmsCartList = [[${order.wmsCartList}]];
+		let delvCartList = [[${order.delvCartList}]];
 		let loginInfo = new Object();
 		let orderFlag = true;
 
@@ -582,7 +588,17 @@
 				$(".shotDelvSelect").hide();
 			}
 
-			$("#cartListForm .area_salecoupon .coupon_box").hide();
+			$(".area_salecoupon .coupon_box").hide();
+
+			$('.checkSelectCartListCnt').text(checkSelectCartListCnt.addComma());
+			$('.sumListPrice').text(sumListPrice.addComma());
+			$('.totDelvFee').text(totDelvFee.addComma());
+			$('#totDcAmt').text(totDcAmt.addComma());
+			$('#sumRealPayAmt').text(sumRealPayAmt.addComma());
+			
+			if (shotCartList.length > 0 || wmsCartList.length > 0 || delvCartList.length > 0) {
+				$('.od_side').css('display', '');
+			}
 
 			/* 딜 및 일반 상품 */
 			/*let compsList = [];
@@ -993,24 +1009,24 @@
 			}
 
 			// 결제 총액 영역 수정
-			$("#cartListForm .checkSelectCartListCnt").text(Number(order.totCartCnt).toLocaleString());
-			$("#cartListForm .sumListPrice").text(Number(order.sumListPrice).toLocaleString());
-			$("#cartListForm .totDelvFee").text(Number(order.totDelvFee).toLocaleString());
+			$(".checkSelectCartListCnt").text(Number(order.totCartCnt).toLocaleString());
+			$(".sumListPrice").text(Number(order.sumListPrice).toLocaleString());
+			$(".totDelvFee").text(Number(order.totDelvFee).toLocaleString());
 			sumRealPayAmt = order.sumRealPayAmt + order.totDelvFee;
 			totDcAmt = order.totDcAmt;
 
 			// 할인코드 쿠폰 금액 재확인
-			if($("#cartListForm #serialCpnNm").val()) {
-				if($("#cartListForm #checkAbleCpnNm").val() == "Y" && $("#cartListForm #ableCpnNm").val() == $("#cartListForm #serialCpnNm").val()) {
+			if($("#serialCpnNm").val()) {
+				if($("#checkAbleCpnNm").val() == "Y" && $("#ableCpnNm").val() == $("#serialCpnNm").val()) {
 					serialCpnApply();
 				} else {
-					$("#cartListForm .totDcAmt").text(Number(order.totDcAmt).toLocaleString());
-					$("#cartListForm .sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
+					$(".totDcAmt").text(Number(order.totDcAmt).toLocaleString());
+					$(".sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
 					cancelCartCpn();
 				}
 			} else {
-				$("#cartListForm .totDcAmt").text(Number(order.totDcAmt).toLocaleString());
-				$("#cartListForm .sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
+				$(".totDcAmt").text(Number(order.totDcAmt).toLocaleString());
+				$(".sumRealPayAmt").text(Number(order.sumRealPayAmt + order.totDelvFee).toLocaleString());
 				cancelCartCpn();
 			}
 		}

+ 164 - 17
src/main/webapp/WEB-INF/views/web/cart/CartListFormWeb.html

@@ -25,6 +25,8 @@
     <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
     <script type="text/javascript" src="/biz/payment.js"></script>
 	<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>
+	<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.mobile.js.url')}" src="" charset="UTF-8"></script>
+	<form id="nPayForm" name="nPayForm"></form>
 
 	<!--  container -->
 	<div id="container" class="container od">
@@ -40,8 +42,153 @@
 						</ul>
 					</div>
 				</div>
-				<div id="cartAjaxList" class="cont_body">
-					<!-- 장바구니 내용 -->
+				<div class="cont_body">
+					<div id="cartAjaxList" class="od_cont">
+						<!-- 장바구니 내용 -->
+					</div>
+					<div class="od_side" style="display:none">
+						<div class="area_order">
+							<div class="tit_box">
+								<h3>결제 정보</h3>
+								<span><em class="number checkSelectCartListCnt"></em>개의 상품</span>
+							</div>
+							<div class="od_amount_box">
+								<dl>
+									<div>
+										<dt>상품금액</dt>
+										<dd><em class="sumListPrice"></em>원</dd>
+									</div>
+									<div>
+										<dt>배송비</dt>
+										<dd><em class="totDelvFee"></em> 원</dd>
+									</div>
+									<div>
+										<dt>할인금액</dt>
+										<dd><span class="disc_amount"><em class="totDcAmt" id="totDcAmt"></em> 원</span></dd>
+									</div>
+								</dl>
+							</div>
+							<div class="totalprice_box">
+								<dl>
+									<dt>총 결제 예정 금액</dt>
+									<dd><span class="sumRealPayAmt" id="sumRealPayAmt"></span> 원</dd>
+								</dl>
+							</div>
+							<div class="btn_box">
+								<button class="btn btn_primary btn_block btn_md" onclick="fnSubmitNoMember('all'); return false;"><span>구매하기</span></button>
+							</div>
+						</div>
+						<div class="area_salecoupon">
+							<h4>할인코드 입력</h4>
+							<div class="form_field">
+								<div class="input_wrap form_full">
+									<label class="input_label sr-only">할인코드입력</label>
+									<input type="text" id="serialCpnNm" class="form_control" placeholder="할인코드를 입력해주세요.">
+								</div>
+								<button type="button" class="btn btn_dark btn_sm" onclick="serialCpnApply()"><span>적용</span></button>
+							</div>
+							<div class="coupon_box">
+								<div class="coupon">
+									<div>
+										<p class="cp_name"></p>
+										<p class="cp_cont">
+											<!--<span><em>12,399,900</em>원</span>
+											<span><em>40</em>%</span>-->
+											<span class="cp_dc_val"></span>
+										</p>
+										<p class="cp_condition">
+											<!--500,000원 이상 구매 시 최대 50,000원 할인
+											<span><em class="tag primary_line">99장 보유</em></span>-->
+										</p>
+									</div>
+									<p class="cp_date">
+										<span class="availStdt"></span>&nbsp;~&nbsp;<span class="availEddt"></span>
+									</p>
+								</div>
+								<button type="button" class="btn_underline" id="btn_cartCouponInfo_pop">
+									<span>사용안내</span>
+								</button>
+							</div>
+						</div>
+						<th:block th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
+							<div style="margin-top:35px;">
+								<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
+									<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.pc.js.url')}" src="" charset="UTF-8"></script>
+	
+									<script th:inline="javascript">
+										if(!wcs_add) var wcs_add = {};
+										wcs_add["wa"] = [[${@environment.getProperty('naverPay.common.certification.key')}]];
+										wcs.inflow("style24.com");
+										wcs_do();
+									</script>
+	
+									<script type="text/javascript">
+										/*버튼설정*/
+										naver.NaverPayButton.apply({
+											BUTTON_KEY              : "[[${buttonKey}]]",       // 네이버페이에서 제공받은 버튼 인증 키 입력
+											TYPE                    : "C",                      // 버튼 모음 종류 설정
+											COLOR                   : 1,                        // 버튼 모음의 색 설정
+											COUNT                   : 1,                        // 버튼 개수 설정. 구매하기 버튼만 있으면(장바구니 페이지) 1, 찜하기 버튼도 있으면(상품 상세 페이지) 2를 입력.
+											ENABLE                  : "Y",                      // 품절 등의 이유로 버튼 모음을 비활성화할 때에는 "N" 입력
+											BUY_BUTTON_HANDLER      : buy_nc,                   // 구매하기 버튼 이벤트 Handler 함수 등록, 품절인 경우 not_buy_nc 함수 사용
+											"":""
+										});
+										
+										/*네이버구매하기*/
+										function buy_nc() {
+											let cartSqArr = []
+											$("#cartListForm input[name=cartSqArr]:checked").each(function() {
+												cartSqArr.push($(this).val());
+											});
+											
+											buy_nc_req(cartSqArr);
+										}
+										
+										function buy_nc_req(cartSqArr) {
+											let data = {  cartSqArr : cartSqArr
+												, backUrl : location.href
+												, goodsUrl : _PAGE_GOODS_DETAIL
+											};
+											let jsonData = JSON.stringify(data);
+											
+											$.ajax( {
+												type		: "POST",
+												url 		: "/pg/nPayReq",
+												dataType 	: 'json',
+												data		: jsonData,
+												beforeSend : function(xhr, settings) {
+													xhr.setRequestHeader("AJAX"			, "true");
+													xhr.setRequestHeader('Accept'		, 'application/json');
+													xhr.setRequestHeader('Content-Type'	, 'application/json');
+												},
+												error: function(xhr, status, error) {
+													mcxDialog.alert(status + '; ' + error);
+												},
+												success : function(result) {
+													if (result.state == "sucess") {
+														enp('create', 'conversion', 'is24', { device: 'W', paySys: 'naverPay' });	// 모비온 네이버주문형 클릭시
+														window.open('about:blank', 'popupView');
+														document.nPayForm.target = 'popupView';
+														document.nPayForm.action = result.npayOrderUrl + "/" + result.orderKey + "/" + result.resultNo;
+														document.nPayForm.submit();
+													} else {
+														mcxDialog.alert(result.message);
+													}
+												}
+											});
+										}
+										
+										<!-- 구매불가 -->
+										function not_buy_nc() {
+											mcxDialog.alert("죄송합니다. 네이버페이로 구매가 불가한 상품입니다.");
+											return false;
+										}
+										//]]>
+									</script>
+								</th:block>
+							</div>
+						</th:block>
+					</div>
 				</div>
 			</div>
 
@@ -172,23 +319,23 @@
 				});
 			}
 		}
-    });
+	});
 
-    function getCartList(parameter) {
-        // 장바구니 정보 조회
-        $.ajax( {
-            type: "POST",
-            url : '/cart/goods/list',
+	function getCartList(parameter) {
+		// 장바구니 정보 조회
+		$.ajax( {
+			type: "POST",
+			url : '/cart/goods/list',
 			data : parameter,
-            dataType : 'html',
-            success : function(result) {
-                if (result != null) {
-                	$("#cartListForm").remove();
-                    $("#cartAjaxList").html(result);
-                }
-            }
-        });
-    }
+			dataType : 'html',
+			success : function(result) {
+				if (result != null) {
+					$("#cartListForm").remove();
+					$("#cartAjaxList").html(result);
+				}
+			}
+		});
+	}
 
 	//상품옵션변경 팝업 > 컬러선택 표기
 	$(document).on('change','input[name=shotDelvUseYn]',function(e){

+ 3 - 3
src/main/webapp/WEB-INF/views/web/goods/GoodsDealDetailFormWeb.html

@@ -382,9 +382,9 @@
 														if (result.state == "success") {
 															$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 															$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
-															console.log(result);
-															
-															window.open('about:blank', 'popupView');
+
+															let option = 'width=530, height=380';
+															window.open('about:blank', 'popupView', option);
 															document.nPayWishForm.target = 'popupView';
 															document.nPayWishForm.action = result.action;
 															document.nPayWishForm.submit();

+ 3 - 2
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -387,7 +387,7 @@
 								</div>
 							</div>
 							<th:block th:if="${sessionInfo != null and (sessionInfo.custId == 'xodud1202' or sessionInfo.custId == 'jsh77b' or sessionInfo.custId == 'card007')}">
-								<div style="margin-top:10px;">
+								<div style="margin-top:30px;">
 									<th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
 										<script type="text/javascript" th:src="${@environment.getProperty('naverPay.button.pc.js.url')}" src="" charset="UTF-8"></script>
 
@@ -584,7 +584,8 @@
 															$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 															$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
 
-															window.open('about:blank', 'popupView');
+															let option = 'width=530, height=380';
+															window.open('about:blank', 'popupView', option);
 															document.nPayWishForm.target = 'popupView';
 															document.nPayWishForm.action = result.action;
 															document.nPayWishForm.submit();

+ 6 - 6
src/main/webapp/WEB-INF/views/web/goods/GoodsIncludeFormWeb.html

@@ -465,9 +465,9 @@
 												if (result.state == "success") {
 													$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 													$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
-													console.log(result);
-													
-													window.open('about:blank', 'popupView');
+
+													let option = 'width=530, height=380';
+													window.open('about:blank', 'popupView', option);
 													document.nPayWishForm.target = 'popupView';
 													document.nPayWishForm.action = result.action;
 													document.nPayWishForm.submit();
@@ -701,9 +701,9 @@
 											if (result.state == "success") {
 												$('#nPayWishForm input[name=SHOP_ID]').val(result.shopId);
 												$('#nPayWishForm input[name=ITEM_ID]').val(result.itemId);
-												console.log(result);
-												
-												window.open('about:blank', 'popupView');
+
+												let option = 'width=530, height=380';
+												window.open('about:blank', 'popupView', option);
 												document.nPayWishForm.target = 'popupView';
 												document.nPayWishForm.action = result.action;
 												document.nPayWishForm.submit();