OrderAddPaymentFormWeb.html 13 KB

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