|
|
@@ -20,6 +20,7 @@
|
|
|
<th:block layout:fragment="content">
|
|
|
<script src="/ux/pc/js/ion.rangeSlider.min.js"></script>
|
|
|
<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
|
|
|
+<form id="nPayForm" name="nPayForm"></form>
|
|
|
<div id="container" class="container pd deal" th:with="imgGoodsUrl=${@environment.getProperty('upload.goods.view')}, uxImgUrl=${@environment.getProperty('domain.uximage')}, imgUrl=${@environment.getProperty('upload.image.view')}">
|
|
|
<div class="wrap">
|
|
|
<!-- 상품 대표설명 -->
|
|
|
@@ -250,6 +251,111 @@
|
|
|
</th:block>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div style="margin-top:10px;">
|
|
|
+ <th:block th:with="buttonKey=${@environment.getProperty('naverPay.button.key')}">
|
|
|
+ <script type="text/javascript" src="https://pay.naver.com/customer/js/naverPayButton.js" charset="UTF-8"></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(url) {
|
|
|
+ // 자사 일반 상품 정보
|
|
|
+ let compsList = [];
|
|
|
+
|
|
|
+ $("#cartForm .result_item input[name=cea]").each(function() {
|
|
|
+ let dealGoodsCd = "[[${goodsInfo.goodsCd}]]";
|
|
|
+ let goodsType = "[[${goodsInfo.goodsType}]]";
|
|
|
+ let goodsCd = $(this).parent().find("input[name=coption]").attr("goodscd");
|
|
|
+ let optCd = $(this).attr("optcd");
|
|
|
+ let goodsQty = $(this).val();
|
|
|
+
|
|
|
+ if (!goodsCd) {
|
|
|
+ mcxDialog.alert("상품정보가 존재하지 않습니다. 새로고침 후 다시 시도해주세요.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!goodsQty || goodsQty < 1) {
|
|
|
+ mcxDialog.alert("구매 수량을 확인해주세요."); /*수량*/
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!optCd) {
|
|
|
+ mcxDialog.alert("상품 옵션을 확인 할 수 없습니다. 새로고침 후 다시 시도해주세요."); /*옵션*/
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ var obj = new Object();
|
|
|
+ obj.cartGb = "N";
|
|
|
+ obj.goodsType = goodsType;
|
|
|
+ obj.goodsCd = goodsCd;
|
|
|
+ obj.optCd = optCd;
|
|
|
+ obj.goodsQty = goodsQty;
|
|
|
+ obj.dealGoodsCd = $("#cartForm input[name=goodsCd]").val();
|
|
|
+ obj.afLinkCd =$("#cartForm input[name=afLinkCd]").val();
|
|
|
+ obj.ithrCd =$("#cartForm input[name=ithrCd]").val();
|
|
|
+ obj.contentsLoc =$("#cartForm input[name=contentsLoc]").val();
|
|
|
+ obj.planDtlSq = $("#cartForm input[name=planDtlSq]").val();
|
|
|
+ compsList.push(obj);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 장바구니담기
|
|
|
+ cfnAddCart(compsList);
|
|
|
+
|
|
|
+ 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") {
|
|
|
+ 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>
|
|
|
</div>
|
|
|
</div>
|
|
|
</form>
|