OrderAddPaymentFormWeb.html 11 KB

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