OrderAddPaymentFormWeb.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <!DOCTYPE html>
  2. <html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="web/common/layout/DefaultLayoutWeb">
  3. <!--
  4. *******************************************************************************
  5. * @source : OrderAddPaymentWeb.html
  6. * @desc : 추가결제화면 Page
  7. *============================================================================
  8. * STYLE24
  9. * Copyright(C) 2020 TSIT, All rights reserved.
  10. *============================================================================
  11. * VER DATE AUTHOR DESCRIPTION
  12. * === =========== ========== =============================================
  13. * 1.0 2021.04.13 jsh77b 최초 작성
  14. *******************************************************************************
  15. -->
  16. <body>
  17. <th:block layout:fragment="content">
  18. <!-- payment.js -->
  19. <script type="text/javascript" th:src="${@environment.getProperty('pg.kcp.js.url')}" src=""></script>
  20. <script type="text/javascript" src="/biz/payment.js"></script>
  21. <!-- 주문정보form -->
  22. <form id="order_info" name="order_info" method="post" action="/order/addPay/result/response" style="display:none"></form>
  23. <!-- //주문정보form -->
  24. <form class="form_wrap" name="addPayForm" id="addPayForm">
  25. <input type="hidden" name="refundAmt" th:value="${refundAmt}">
  26. <input type="hidden" name="ordNo" th:value="${ordNo}">
  27. <input type="hidden" name="ordNm" th:value="${ordNm}">
  28. <input type="hidden" name="ordPhnno" th:value="${ordPhnno}">
  29. <input type="hidden" name="addPayCost" th:value="${addPayCost}">
  30. <input type="hidden" name="ordChgSq" th:value="${ordChgSq}">
  31. <input type="hidden" name="chgGb" th:value="${chgGb}">
  32. <input type="hidden" name="chgerPhnno" th:value="${chgerPhnno}">
  33. <input type="hidden" name="chgerNm" th:value="${chgerNm}">
  34. <input type="hidden" name="goodsNm" th:value="${goodsNm}">
  35. <!-- container -->
  36. <div id="container" class="container od">
  37. <div class="wrap">
  38. <div class="content odPayment"> <!-- 페이지특정 클래스 = odPayment 클래스 추가 -->
  39. <div class="cont_head">
  40. <h2>추가결제</h2>
  41. </div>
  42. <div class="cont_body">
  43. <!-- CONT-BODY -->
  44. <div class="od_cont">
  45. <div class="sec_body">
  46. <div class="extra_pay">
  47. <div class="tit_pay">
  48. <span>결제수단 선택</span>
  49. </div>
  50. <div class="area_paymethod">
  51. <div class="form_field">
  52. <div class="paymethod_box">
  53. <ul class="sel_method">
  54. <li>
  55. <input type="radio" name="rdi-paynormal" id="payCreditCard" class="KCP" value="KCP|G014_30" checked="checked">
  56. <label for="payCreditCard"><span>신용카드</span></label>
  57. </li>
  58. <li>
  59. <input type="radio" name="rdi-paynormal" id="payCellphone" class="KCP" value="KCP|G014_60">
  60. <label for="payCellphone"><span>휴대폰 결제</span></label>
  61. </li>
  62. </ul>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="area_paymentinfo">
  68. <!-- 입점업체가 있을때 노출 -->
  69. <th:block th:if="${delvCnt} > 0">
  70. <div class="paymentinfo">
  71. <!-- 210421_수정 : 테이블 추가. -->
  72. <div class="payinfo_blk">
  73. <a href="javascript:void(0)">
  74. 개인정보 제공에 대한 동의
  75. <span>보기</span>
  76. </a>
  77. <div class="infotxt">
  78. STYLE24는 다음과 같이 회원님의 개인정보를 제3자에게 제공합니다.
  79. <table>
  80. <colgroup>
  81. <col width="25%">
  82. <col width="*">
  83. <col width="25%">
  84. <col width="25%">
  85. </colgroup>
  86. <thead>
  87. <tr>
  88. <th>제공받는 자</th>
  89. <th>제공하는 항목</th>
  90. <th>제공 목적</th>
  91. <th>보유 및 이용기간</th>
  92. </tr>
  93. </thead>
  94. <tbody>
  95. <tr>
  96. <td>
  97. <th:block th:each="delvFeeCd, i : ${delvFeeCdList}">
  98. <th:block th:unless="${delvFeeCd.delvFeeCd} == 'WMS' or ${delvFeeCd.delvFeeCd} == 'WMS_FREE'">
  99. <th:block th:if="${i.count == #lists.size(delvFeeCdList)}">
  100. <th:block th:text="|${delvFeeCd.supplyCompNm}|"></th:block>
  101. </th:block>
  102. <th:block th:if="${i.count < #lists.size(delvFeeCdList)}">
  103. <th:block th:text="|${delvFeeCd.supplyCompNm},|"></th:block>
  104. </th:block>
  105. </th:block>
  106. </th:block>
  107. </td>
  108. <td>
  109. 성명, 주소, 연락처
  110. </td>
  111. <td>
  112. 주문상품의 배송, 고객상담 및 불만처리
  113. </td>
  114. <td>
  115. 이용목적 달성 시 까지
  116. </td>
  117. </tr>
  118. </tbody>
  119. </table>
  120. </div>
  121. </div>
  122. </div>
  123. </th:block>
  124. <!-- //입점업체가 있을때 노출 -->
  125. <div class="agree_payment">
  126. 위 주문내역을 확인 하였으며, 회원 본인은 결제에 동의합니다. (전자상거래법 제 8조 제2항) <!-- 210421_수정 : 텍스트 수정. -->
  127. </div>
  128. </div>
  129. <div class="area_paybtn">
  130. <div class="form_field">
  131. <button type="button" class="btn btn_primary btn_block" id="btn_payment">
  132. <span>동의 후 <em th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}원|"></em> 결제하기</span>
  133. </button>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="od_side">
  139. <div class="area_order">
  140. <div class="tit_box"><h3>결제내역</h3></div>
  141. <div class="od_item_box">
  142. <!-- 반품상품 내역 -->
  143. <div class="part_dlvr">
  144. <th:block th:if="${chGb} == 'G680_20'">
  145. <h4 class="sr-only">반품상품</h4>
  146. </th:block>
  147. <th:block th:if="${chGb} == 'G680_30'">
  148. <h4 class="sr-only">반품상품</h4>
  149. </th:block>
  150. <th:block th:if="${chGb} == 'G680_40'">
  151. <h4 class="sr-only">교환상품</h4>
  152. </th:block>
  153. <div class="gd_list">
  154. <th:block th:each="goods, i : ${orderAddPayGoodsList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
  155. <div class="item_gd">
  156. <figure>
  157. <span class="thumb">
  158. <img th:src="${imageUrl + '/' + goods.sysImgNm}" src="/" width="100%" alt="">
  159. </span>
  160. <figcaption>
  161. <div class="brand" th:text="${goods.brandGroupNm}"></div>
  162. <div class="name goodsNm" th:text="${goods.goodsNm}"></div>
  163. <div class="option" th:each="colorNm, index : ${goods.colorNmArr}">
  164. <span th:text="${colorNm}+'/'+${goods.optCd2Arr[index.index]}"></span>
  165. </div>
  166. <div class="option">
  167. <span>수량:<em th:text="${goods.chgQty}"></em>개</span>
  168. </div>
  169. <div class="price">
  170. <span class="selling_price" th:text="${#numbers.formatInteger((goods.currPrice + goods.optAddPrice) * goods.chgQty, 1, 'COMMA')}"></span>
  171. </div>
  172. </figcaption>
  173. </figure>
  174. </div>
  175. </th:block>
  176. </div>
  177. </div>
  178. <!-- //반품상품 내역 -->
  179. </div>
  180. <div class="od_amount_box">
  181. <dl>
  182. <div>
  183. <dt>환불 상품금액</dt>
  184. <dd><em th:text="|${#numbers.formatInteger(refundAmt, 1, 'COMMA')}|"></em>원</dd>
  185. </div>
  186. <div>
  187. <dt>반품/교환 배송비</dt>
  188. <dd><em th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></em>원</dd>
  189. </div>
  190. </dl>
  191. </div>
  192. <div class="totalprice_box">
  193. <dl>
  194. <dt>총 결제 예정 금액</dt>
  195. <dd><span th:text="|${#numbers.formatInteger(addPayCost, 1, 'COMMA')}|"></span>원</dd>
  196. </dl>
  197. <p class="info_extra">
  198. 환불할 상품금액이 반품/교환 배송비보다 적을<br>
  199. 경우 배송비 를 결제하신 후 남은 상품금액이<br>
  200. 환불처리 됩니다.
  201. </p>
  202. </div>
  203. </div>
  204. </div>
  205. <!-- // CONT-BODY -->
  206. </div>
  207. </div>
  208. </div>
  209. </div>
  210. <!-- // container -->
  211. </form>
  212. <script th:inline="javascript">
  213. // 개인정보동의 열고닫기
  214. $(document).on('click','.area_paymentinfo .payinfo_blk a',function(e){
  215. e.preventDefault();
  216. $(this).parents('.payinfo_blk').toggleClass('on');
  217. $(this).parents('.payinfo_blk').siblings('.payinfo_blk').removeClass('on'); //210428_수정 : 아코디언 추가.
  218. var privacyToggle = $(this).find('span');
  219. $(privacyToggle).text($(privacyToggle).text() == '보기' ? '닫기' : '보기');
  220. return false;
  221. });
  222. //결제하기
  223. $("#btn_payment").on("click", function(){
  224. var paynormal = $("input[name='rdi-paynormal']:checked").val();
  225. var paynormalArr = paynormal.split("|");
  226. var pgGb = paynormalArr[0];
  227. var payMeans = paynormalArr[1];
  228. // 주문데이타 생성
  229. var orderData = {
  230. "pgGb" : pgGb
  231. ,"payMeans" : payMeans // 네이버페이, 카카오페이
  232. ,"ordNo" : $("#addPayForm input[name=ordNo]").val()
  233. ,"ordNm" : $("#addPayForm input[name=ordNm]").val()
  234. ,"ordPhnno" : $("#addPayForm input[name=ordPhnno]").val()
  235. ,"addPayCost" : $("#addPayForm input[name=addPayCost]").val()
  236. ,"ordChgSq" : $("#addPayForm input[name=ordChgSq]").val()
  237. ,"chgGb" : $("#addPayForm input[name=chgGb]").val()
  238. ,"chgerPhnno" : $("#addPayForm input[name=chgerPhnno]").val()
  239. ,"chgerNm" : $("#addPayForm input[name=chgerNm]").val()
  240. ,"goodsNm" : $("#addPayForm input[name=goodsNm]").val()
  241. };
  242. $.ajax( {
  243. type : "POST",
  244. url : '/order/addPayment',
  245. data : JSON.stringify(orderData),
  246. dataType : 'html',
  247. beforeSend : function(xhr, settings) {
  248. xhr.setRequestHeader("AJAX" , "true");
  249. xhr.setRequestHeader('Accept' , 'application/json');
  250. xhr.setRequestHeader('Content-Type' , 'application/json');
  251. },
  252. success : function(result) {
  253. // 결재정보로드
  254. $("#order_info").html(result);
  255. var pgGb = $("#order_info input[name=pgGb]").val();
  256. if (pgGb == "NAVER") {
  257. fnNaverPaymentReady();
  258. } else if (pgGb == "KAKAO") {
  259. fnKakaoPaymentReady();
  260. } else if (pgGb == "KCP" || pgGb == "PAYCO") {
  261. jsf__pay(document.order_info);
  262. }
  263. }
  264. });
  265. });
  266. </script>
  267. </th:block>
  268. </body>
  269. </html>