결제 - 키움결제 적용 1차
This commit is contained in:
@@ -53,7 +53,10 @@
|
||||
const gcpayCardUseAt = $('#gcpayCardUseAt').val();
|
||||
let gcpayAt = ( gcpayCardUseAt === 'Y')? 'Y' : 'N';
|
||||
const setleTy = $('#setleSetupTyCd').val();
|
||||
const setleTyCd = (setleTy==='01')?'#pg04':'#pg03';
|
||||
const setleTyCd = '#pg04';
|
||||
if(setleTy==='01')setleTyCd = '#pg04'; //kcp
|
||||
else if(setleTy==='02')setleTyCd = '#pg03'; //toss
|
||||
else if(setleTy==='03')setleTyCd = '#pg06'; //kiwoom
|
||||
|
||||
if (gcpayAt === 'N') {
|
||||
$(setleTyCd).click();
|
||||
@@ -525,7 +528,12 @@
|
||||
|
||||
$(form).find('.pgContent').hide();
|
||||
$(form).find('#' + id + 'Content').show();
|
||||
$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
||||
|
||||
//$(form).find('#setleSetupTyCd').val() === '01' ? $(form).find('#pg04Content').show() : $(form).find('#pg03Content').show();
|
||||
if($(form).find('#setleSetupTyCd').val() === '01'){$(form).find('#pg04Content').show();}
|
||||
else if($(form).find('#setleSetupTyCd').val() === '02'){$(form).find('#pg03Content').show();}
|
||||
else if($(form).find('#setleSetupTyCd').val() === '03'){$(form).find('#pg06Content').show();}
|
||||
|
||||
$('.order-method-normal__btn').removeClass('active');
|
||||
$(form).find('#pgCmpnyNm').val(pgCmpnyNm);
|
||||
|
||||
@@ -579,7 +587,10 @@
|
||||
const content = $('.order-method-normal__content');
|
||||
const useCashMlgAmt = $('#useCashMlgAmt').val();
|
||||
|
||||
$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||
//$('#setleSetupTyCd').val() === '01' ? $('#pg04').click() : $('#pg03').click();
|
||||
if($('#setleSetupTyCd').val() === '01'){$('#pg04').click();}
|
||||
else if($('#setleSetupTyCd').val() === '02'){$('#pg03').click();}
|
||||
else if($('#setleSetupTyCd').val() === '03'){$('#pg05').click();}
|
||||
|
||||
$('.order-method-normal__btn').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
@@ -3014,7 +3025,12 @@
|
||||
const id = '01' === issuTrgetDvCd ? 'issuTrgetMbtlnb' : 'issuTrgetBsnmNb';
|
||||
let rlPgCmpnyNm = $('#pgCmpnyNm').val();
|
||||
|
||||
let setleTyId = $('kcp' === pgCmpnyNm ? '#pg04Content' : '#pg03Content').find('button[name="' + setleTyCd + '"]').attr('id');
|
||||
let pgCont = "";
|
||||
if('kiwoom' === pgCmpnyNm) pgCont='pg06Content';
|
||||
else if('kcp' === pgCmpnyNm) pgCont='pg04Content';
|
||||
else pgCont='pg03Content';
|
||||
let setleTyId = $('#'+pgCont).find('button[name="' + setleTyCd + '"]').attr('id');
|
||||
|
||||
|
||||
if ('tosspay' === rlPgCmpnyNm) {
|
||||
setleTyId = 'acount'
|
||||
@@ -3510,6 +3526,82 @@
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var pf;
|
||||
function kiwoomPay() {
|
||||
|
||||
console.log("kiwoomPay script start :::::");
|
||||
|
||||
pf = document.payForm;
|
||||
|
||||
// 입력값 가져오기
|
||||
var CPID = pf.CPID.value;
|
||||
var PAYMETHOD = pf.PAYMETHOD.value;
|
||||
var ORDERNO = pf.ORDERNO.value;
|
||||
var TYPE = pf.TYPE.value;
|
||||
var AMOUNT = pf.AMOUNT.value;
|
||||
|
||||
const url = '<c:url value="/sopmal/pay/kiwoomPayGetEnc"/>';
|
||||
|
||||
// AJAX로 kiwoom_ENC 값 요청
|
||||
$.ajax({
|
||||
url : url,
|
||||
type : "POST",
|
||||
dataType : "json",
|
||||
data : {
|
||||
CPID : CPID,
|
||||
PAYMETHOD : PAYMETHOD,
|
||||
ORDERNO : ORDERNO,
|
||||
TYPE : TYPE,
|
||||
AMOUNT : AMOUNT
|
||||
},
|
||||
success : function(res) {
|
||||
|
||||
console.log("response :::::",res);
|
||||
console.log("response KIWOOM_ENC :::::",JSON.parse(res.response).KIWOOM_ENC);
|
||||
|
||||
var enc = JSON.parse(res.response).KIWOOM_ENC;
|
||||
|
||||
if (enc) {
|
||||
// kiwoom_ENC 값 입력
|
||||
pf.KIWOOM_ENC.value = enc;
|
||||
|
||||
console.log("response enc :::::",enc);
|
||||
|
||||
// 결제창 URL 설정
|
||||
var PayServer = pf.SERVER.value;
|
||||
var PayType = pf.TYPE.value;
|
||||
var fileName = "";
|
||||
console.log("response PayServer :::::", PayServer);
|
||||
console.log("response PayType :::::", PayType);
|
||||
if (PayServer === "DEV") {
|
||||
fileName = "https://apitest.kiwoompay.co.kr/pay/linkEnc";
|
||||
} else if (PayServer === "LIVE") {
|
||||
fileName = "https://api.kiwoompay.co.kr/pay/linkEnc";
|
||||
}
|
||||
console.log("response fileName :::::", fileName);
|
||||
if (PayType === "P") {
|
||||
var KIWOOMPAY = window.open("", "KIWOOMPAY", "width=468,height=750");
|
||||
pf.target = "KIWOOMPAY";
|
||||
} else if (PayType === "M" || PayType === "W") {
|
||||
pf.target = "_self";
|
||||
}
|
||||
|
||||
pf.action = fileName;
|
||||
pf.method = "post";
|
||||
pf.submit();
|
||||
} else {
|
||||
alert("결제 정보를 가져오지 못했습니다.");
|
||||
}
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
console.log("AJAX Error:", error);
|
||||
alert("파일을 연동바랍니다.");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<%-- 공통 Header --%>
|
||||
@@ -4428,6 +4520,138 @@
|
||||
</div>
|
||||
</c:if>
|
||||
<%-- kcp 결제 종료 --%>
|
||||
|
||||
<%-- 키움 결제 시작 --%>
|
||||
<c:if test="${'03' eq payInfo.setleSetupTyCd}">
|
||||
<div class="custom-radio is-medium">
|
||||
<input type="radio" name="pg" id="pg06" value="kiwoom">
|
||||
<label for="pg06">일반결제</label>
|
||||
</div>
|
||||
<div id="pg06Content" class="pgContent order-method-normal" <%-- style="display: none"--%>>
|
||||
<div class="order-method-normal__btn-container">
|
||||
<c:if test="${'Y' eq payInfo.cardUseAt}">
|
||||
<button type="button" name="01" id="card" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--card"></div>신용카드
|
||||
</button>
|
||||
</c:if>
|
||||
<%--
|
||||
<c:if test="${'Y' eq payInfo.rltmAcntUseAt}">
|
||||
<button type="button" name="03" id="acount" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--transfer"></div>실시간 계좌이체
|
||||
</button>
|
||||
</c:if>
|
||||
--%>
|
||||
<c:if test="${'Y' eq payInfo.virtlAcntUseAt}">
|
||||
<button type="button" name="04" id="virtual" class="order-method-normal__btn">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--account"></div>가상계좌
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.virtlAcntEscwUseAt}">
|
||||
<button type="button" name="05" id="escrow-virtual" class="order-method-normal__btn not_multi_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--account"></div>가상계좌(에스크로)
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.nbkkUseAt}">
|
||||
<button type="button" name="02" id="bank" class="order-method-normal__btn">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--deposit"></div>무통장
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.paycoUseAt}">
|
||||
<button type="button" name="10" id="payco" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--payco"></div>PAYCO
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.tpayUseAt}">
|
||||
<button type="button" name="tosspay" id="tosspay" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--toss"></div>토스페이
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
||||
<button type="button" name="naverpay" id="naverpay" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--naver"></div>네이버페이
|
||||
</button>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
||||
<button type="button" name="kakaopay" id="kakaopay" class="order-method-normal__btn gift_pay">
|
||||
<div class="order-method-normal__icon order-method-normal__icon--kakao"></div>카카오페이
|
||||
</button>
|
||||
</c:if>
|
||||
</div>
|
||||
<div class="order-method-normal__content-wrapper">
|
||||
<c:if test="${'Y' eq payInfo.cardUseAt}">
|
||||
<div id="card-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="card-content-inner" class="order-method-normal__content-inner">
|
||||
<p class="fyi gray-7 mt-10 ml-10 noempty">발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<%--
|
||||
<c:if test="${'Y' eq payInfo.rltmAcntUseAt}">
|
||||
<div id="acount-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="acount-content-inner" class="order-method-normal__content-inner"></div>
|
||||
</div>
|
||||
</c:if>
|
||||
--%>
|
||||
<c:if test="${'Y' eq payInfo.virtlAcntUseAt}">
|
||||
<div id="virtual-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="virtual-content-inner" class="order-method-normal__content-inner"></div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.virtlAcntEscwUseAt}">
|
||||
<div id="escrow-virtual-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="escrow-virtual-content-inner" class="order-method-normal__content-inner"></div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.nbkkUseAt}">
|
||||
<div id="bank-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="bank-content-inner" class="order-method-normal__content-inner"></div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.paycoUseAt}">
|
||||
<div id="payco-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="payco-content-inner" class="order-method-normal__content-inner">
|
||||
<div class="infoBox noempty">
|
||||
<h6 class="infoBox__title">PAYCO 간편결제 안내</h6>
|
||||
<ol class="infoBox__list">
|
||||
<li>PAYCO는 온/오프라인 쇼핑은 물론 송금, 멤버십 적립까지 가능한 통합 서비스입니다.</li>
|
||||
<li>휴대폰과 카드 명의자가 동일해야 결제 가능하며, 결제금액 제한은 없습니다.
|
||||
<br>- 지원카드: 모든 국내 신용/체크카드
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<p class="textInfo noempty"><i class="icon icon_textInfo--sm"></i>발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.tpayUseAt}">
|
||||
<div id="acount-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="acount-content-inner" class="order-method-normal__content-inner">
|
||||
<p class="fyi gray-7 mt-10 ml-10 noempty">발급정보 : 카드매출전표(또는 휴대폰결제전표)로 대체합니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.npayUseAt}">
|
||||
<div id="naverpay-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="naverpay-content-inner" class="order-method-normal__content-inner">
|
||||
<div class="noempty">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<c:if test="${'Y' eq payInfo.kpayUseAt}">
|
||||
<div id="kakaopay-content" class="order-method-normal__content" style="display: none">
|
||||
<div id="kakaopay-content-inner" class="order-method-normal__content-inner">
|
||||
<div class="noempty">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
</c:if>
|
||||
<%-- kcp 결제 종료 --%>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -34,10 +34,7 @@
|
||||
const setleTyCd = orderForm.find('.setleTyCd').val();
|
||||
const setleAmt = orderForm.find('.setleAmt').val();
|
||||
const ordrInnb = orderForm.find('.ordrInnb').val();
|
||||
const goodsNm = orderForm.find('.goodsNm').val();
|
||||
const ordrrNm = orderForm.find('.ordrrNm').val();
|
||||
const ordrrEmail = orderForm.find('.ordrrEmail').val();
|
||||
const ordrrMbtlnb = orderForm.find('.ordrrMbtlnb').val().replace(/[^0-9]/g, '');
|
||||
|
||||
const sopmalCd = orderForm.find('.sopmalCd').val();
|
||||
const mbrInnb = orderForm.find('.mbrInnb').val();
|
||||
@@ -62,14 +59,13 @@
|
||||
console.log("HOMEURL:::"+ pf.HOMEURL.value);
|
||||
console.log("FAILURL:::"+ pf.FAILURL.value);
|
||||
|
||||
init();
|
||||
kiwoomPay();
|
||||
});
|
||||
|
||||
|
||||
var pf;
|
||||
|
||||
function init() {
|
||||
//alert(navigator.userAgent);
|
||||
pf = document.payForm;
|
||||
pf.ORDERNO.value = getTimeStamp();
|
||||
}
|
||||
@@ -165,52 +161,41 @@
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form name="order_info" id="order_info" accept-charset="euc-kr">
|
||||
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}"/>
|
||||
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}"/>
|
||||
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}"/>
|
||||
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}"/>
|
||||
<%-- Controller에 넘어가는 값 --%>
|
||||
<form name="order_info" id="order_info">
|
||||
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
|
||||
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
|
||||
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
|
||||
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
|
||||
|
||||
<input type="hidden" name="SERVER" class="SERVER" value="DEV"/> <!-- 서버환경 : LIVE -->
|
||||
<input type="hidden" name="TYPE" class="TYPE" value="${data.setle.setleAmt}"/> <!-- 결제방식(P:PC/M:모바일/W:웹뷰) -->
|
||||
<input type="hidden" name="PAYMETHOD" class="PAYMETHOD" value="${data.ordr.ordrrNm}"/> <!-- 결제수단 -->
|
||||
<input type="hidden" name="TAXFREECD" class="TAXFREECD" value="00"/> <!-- 과세 비과세 여부(00: 과세, 01: 비과세, 02: 복합과세) -->
|
||||
<input type="hidden" name="BILLTYPE" class="BILLTYPE" value="1"/> <!-- 과금 유형(1: 일반) -->
|
||||
<input type="hidden" name="KIWOOM_ENC" class="KIWOOM_ENC" value="${data.ordr.ordrrNm}"/> <!-- 보안 기능 -->
|
||||
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
|
||||
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
|
||||
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
|
||||
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
|
||||
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
||||
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
|
||||
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" />
|
||||
<input type="hidden" name="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
|
||||
</form>
|
||||
|
||||
<input type="hidden" name="CPID" class="CPID" value="${data.ordr.ordrrEmail}"/> <!-- 상점아이디 -->
|
||||
<input type="hidden" name="ORDERNO" class="ORDERNO" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문번호 -->
|
||||
<input type="hidden" name="PRODUCTTYPE" class="PRODUCTTYPE" value="${data.ordr.mbrId}"/> <!-- 상품구분(1: 디지털, 2: 실물) -->
|
||||
<input type="hidden" name="AMOUNT" class="AMOUNT" value="${data.ordr.mbrInnb}" /><!-- 결제금액 -->
|
||||
<input type="hidden" name="PRODUCTNAME" class="PRODUCTNAME" value="${data.ordr.sesionId}" /><!-- 상품명 -->
|
||||
<input type="hidden" name="USERID" class="USERID" value="${data.setle.dueDt}" /> <!-- 고객 ID -->
|
||||
<%-- 결제창에 넘어가는 값 --%>
|
||||
<form name="payForm" accept-charset="euc-kr">
|
||||
<input type="hidden" name="SERVER" value="DEV"/> <!-- 서버환경 : LIVE -->
|
||||
<input type="hidden" name="TAXFREECD" value="01"/> <!-- 과세 비과세 여부(00: 과세, 01: 비과세, 02: 복합과세) -->
|
||||
<input type="hidden" name="BILLTYPE" value="1"/> <!-- 과금 유형(1: 일반) -->
|
||||
<input type="hidden" name="PRODUCTTYPE" value="2"/> <!-- 상품구분(1: 디지털, 2: 실물) -->
|
||||
<input type="hidden" name="KIWOOM_ENC" value=""/> <!-- 보안 기능 -->
|
||||
|
||||
<input type="hidden" name="HOMEURL" class="HOMEURL" value="${data.setle.dueDt}" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
|
||||
<input type="hidden" name="FAILURL" class="FAILURL" value="${data.setle.dueDt}" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
|
||||
<input type="hidden" name="TYPE" value="P"/> <!-- 결제방식(P:PC/M:모바일/W:웹뷰) -->
|
||||
<input type="hidden" name="CPID" value="CFO20585"/> <!-- 상점아이디 CFO20585,CFO20586-->
|
||||
<input type="hidden" name="PAYMETHOD" value="CARD"/> <!-- 결제수단 (CARD:카드/NAVERPAY:네이버페이)-->
|
||||
|
||||
<!--
|
||||
payVO.setOrderId(request.getParameter("orderId"));
|
||||
payVO.setPaymentKey(request.getParameter("paymentKey"));
|
||||
payVO.setAmount(request.getParameter("amount"));
|
||||
|
||||
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
||||
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
||||
payVO.setMbrId(request.getParameter("mbrId"));
|
||||
payVO.setSesionId(request.getParameter("sesionId"));
|
||||
payVO.setPgCmpnyNm(request.getParameter("pgCmpnyNm"));
|
||||
payVO.setSetleTyCd(request.getParameter("setleTyCd"));
|
||||
payVO.setSetlerNm(request.getParameter("ordrrNm"));
|
||||
|
||||
|
||||
let param = '?sopmalCd=' + sopmalCd;
|
||||
param += '&mbrInnb=' + mbrInnb;
|
||||
param += '&mbrId=' + mbrId;
|
||||
param += '&sesionId=' + sesionId;
|
||||
param += '&pgCmpnyNm=' + pgCmpnyNm;
|
||||
param += '&setleTyCd=' + setleTyCd;
|
||||
param += '&ordrrNm=' + ordrrNm;
|
||||
|
||||
-->
|
||||
<input type="hidden" name="ORDERNO" value="${data.setle.ordrInnb}"/> <!-- 주문번호 -->
|
||||
<input type="hidden" name="AMOUNT" value="${data.setle.setleAmt}" /><!-- 결제금액 -->
|
||||
<input type="hidden" name="PRODUCTNAME" value="${data.setle.goodsNm}" /><!-- 상품명 -->
|
||||
<input type="hidden" name="USERID" value="${data.ordr.mbrId}" /> <!-- 고객 ID -->
|
||||
<input type="hidden" name="HOMEURL" value="" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
|
||||
<input type="hidden" name="FAILURL" value="" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
|
||||
|
||||
</form>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user