Pārlūkot izejas kodu

추가결제관련

tsit14 5 gadi atpakaļ
vecāks
revīzija
b61bc04c77

+ 12 - 1
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);
@@ -1273,6 +1277,9 @@ 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 +1316,14 @@ public class TsfOrderController extends TsfBaseController {
 		}
 		param.setPayGb(TscConstants.PaymentGb.DELIVERY.value());
 		param.setUpdNo(param.getCustNo());
-
+		
 		// 2. 결재정보등록(TB_PAYMENT)
 		param = orderService.orderPgPayResult(param, request, response);
 		order.setOrdNo(param.getOrdNo());
+		
+		// TODO 모바일  param_opt_3 : ordChgSq
+		// TODO PC ordChgSq
+		
 		order.setOrdChgSq(param.getOrdChgSq());
 		
 		// 3. 추가결제 상품목록

+ 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>

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

@@ -0,0 +1,268 @@
+<!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="">
+									구매조건 확인 및 결제대행 서비스 약관 동의
+									<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>
+</th:block>
+</body>
+</html>

+ 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>