결제 - 키움결제 적용 3차
This commit is contained in:
@@ -5484,6 +5484,8 @@ public class BOOrdrService{
|
|||||||
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
orderVO.setMbrInnb(new BigInteger(payVO.getMbrInnb()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("insertKiwoomSetle service start ::: ");
|
||||||
|
|
||||||
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
// 주문 공통 전처리 ( 상태체크, 상태변경, 마일리지, 쿠폰, GC머니 )
|
||||||
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
orderCommService.commonOrderPreProcess(payVO, orderVO);
|
||||||
|
|
||||||
|
|||||||
@@ -1439,9 +1439,12 @@ public class OrdrController {
|
|||||||
@Policy(AuthPolicy.RESTRICTED)
|
@Policy(AuthPolicy.RESTRICTED)
|
||||||
@RequestMapping(value="/insertKiwoomSetle")
|
@RequestMapping(value="/insertKiwoomSetle")
|
||||||
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
|
public String insertKiwoomSetle(ModelMap model, HttpServletRequest request) {
|
||||||
|
|
||||||
|
log.info("insertKiwoomSetle controller start ::: ");
|
||||||
|
|
||||||
BOPayVO payVO = new BOPayVO();
|
BOPayVO payVO = new BOPayVO();
|
||||||
|
|
||||||
payVO.setOrderId(request.getParameter("orderId"));
|
payVO.setOrderId(request.getParameter("ordrInnb"));
|
||||||
payVO.setAmount(request.getParameter("setleAmt"));
|
payVO.setAmount(request.getParameter("setleAmt"));
|
||||||
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
payVO.setSopmalCd(request.getParameter("sopmalCd"));
|
||||||
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
payVO.setMbrInnb(request.getParameter("mbrInnb"));
|
||||||
|
|||||||
@@ -5784,6 +5784,15 @@
|
|||||||
AND O.SUBSVC_AT = 'Y'
|
AND O.SUBSVC_AT = 'Y'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectKiwoomPgApiLog"
|
||||||
|
parameterType="com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO"
|
||||||
|
resultType="dataMap">
|
||||||
|
SELECT GOPAL.RSLT_PARAM FROM GC_ORDER_PG_API_LOG GOPAL
|
||||||
|
WHERE GOPAL.SOPMAL_CD = #{sopmalCd}
|
||||||
|
AND GOPAL.ORDR_INNB = #{orderId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3403,38 +3403,6 @@
|
|||||||
fn_get_setle_amt();
|
fn_get_setle_amt();
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
/****************************************************************/
|
|
||||||
/* m_Completepayment 설명 */
|
|
||||||
/****************************************************************/
|
|
||||||
/* 인증완료시 재귀 함수 */
|
|
||||||
/* 해당 함수명은 절대 변경하면 안됩니다. */
|
|
||||||
/* 해당 함수의 위치는 kcp_spay_hub.js 보다먼저 선언되어여 합니다. */
|
|
||||||
/* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */
|
|
||||||
/****************************************************************/
|
|
||||||
function m_Completepayment(FormOrJson, closeEvent) {
|
|
||||||
var frm = document.order_info;
|
|
||||||
|
|
||||||
/********************************************************************/
|
|
||||||
/* FormOrJson은 가맹점 임의 활용 금지 */
|
|
||||||
/* frm 값에 FormOrJson 값이 설정 된 frm 값으로 활용 하셔야 됩니다. */
|
|
||||||
/********************************************************************/
|
|
||||||
GetField(frm, FormOrJson);
|
|
||||||
|
|
||||||
if (frm.res_cd.value == "0000"){
|
|
||||||
/* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 */
|
|
||||||
frm.submit();
|
|
||||||
} else {
|
|
||||||
/* 결제인증 실패에 대한 처리 */
|
|
||||||
alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
|
|
||||||
|
|
||||||
location.reload();
|
|
||||||
|
|
||||||
closeEvent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 약관 상세 보기, 마케팅동의여부 모달 데이터 정제*/
|
/* 약관 상세 보기, 마케팅동의여부 모달 데이터 정제*/
|
||||||
const fn_select_clause = (stplatDvCd,agreeAt) => {
|
const fn_select_clause = (stplatDvCd,agreeAt) => {
|
||||||
@@ -3467,7 +3435,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const sjCn = {sj: sj,
|
const sjCn = {sj: sj,
|
||||||
cn: stplatCn};
|
cn: stplatCn};
|
||||||
fn_select_clause2(sjCn,agreeAt);
|
fn_select_clause2(sjCn,agreeAt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -3497,6 +3465,38 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
/****************************************************************/
|
||||||
|
/* m_Completepayment 설명 */
|
||||||
|
/****************************************************************/
|
||||||
|
/* 인증완료시 재귀 함수 */
|
||||||
|
/* 해당 함수명은 절대 변경하면 안됩니다. */
|
||||||
|
/* 해당 함수의 위치는 kcp_spay_hub.js 보다먼저 선언되어여 합니다. */
|
||||||
|
/* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */
|
||||||
|
/****************************************************************/
|
||||||
|
function m_Completepayment(FormOrJson, closeEvent) {
|
||||||
|
var frm = document.order_info;
|
||||||
|
|
||||||
|
/********************************************************************/
|
||||||
|
/* FormOrJson은 가맹점 임의 활용 금지 */
|
||||||
|
/* frm 값에 FormOrJson 값이 설정 된 frm 값으로 활용 하셔야 됩니다. */
|
||||||
|
/********************************************************************/
|
||||||
|
GetField(frm, FormOrJson);
|
||||||
|
|
||||||
|
if (frm.res_cd.value == "0000"){
|
||||||
|
/* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 */
|
||||||
|
frm.submit();
|
||||||
|
} else {
|
||||||
|
/* 결제인증 실패에 대한 처리 */
|
||||||
|
alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
|
||||||
|
|
||||||
|
location.reload();
|
||||||
|
|
||||||
|
closeEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${data.payInfo.kcpMid eq 'T0007'}">
|
<c:when test="${data.payInfo.kcpMid eq 'T0007'}">
|
||||||
<script type="text/javascript" src="https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
|
<script type="text/javascript" src="https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
|
||||||
@@ -3615,6 +3615,22 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function kiwoom_Completepayment() {
|
||||||
|
|
||||||
|
console.log("::: parent window 호출 됨 ::::");
|
||||||
|
var frm = document.order_info;
|
||||||
|
frm.submit();
|
||||||
|
|
||||||
|
/*if (frm.res_cd.value == "0000"){
|
||||||
|
/!* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 *!/
|
||||||
|
frm.submit();
|
||||||
|
} else {
|
||||||
|
/!* 결제인증 실패에 대한 처리 *!/
|
||||||
|
alert( "[" + frm.res_cd.value + "] " + frm.res_msg.value );
|
||||||
|
location.reload();
|
||||||
|
}*/
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -29,9 +29,7 @@
|
|||||||
|
|
||||||
<script type="text/javascript" language="javascript">
|
<script type="text/javascript" language="javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
/*
|
||||||
var pf = document.payForm;
|
|
||||||
|
|
||||||
const orderForm = $('#order_info');
|
const orderForm = $('#order_info');
|
||||||
const setleTyCd = orderForm.find('.setleTyCd').val();
|
const setleTyCd = orderForm.find('.setleTyCd').val();
|
||||||
const setleAmt = orderForm.find('.setleAmt').val();
|
const setleAmt = orderForm.find('.setleAmt').val();
|
||||||
@@ -54,24 +52,25 @@
|
|||||||
param += '&orderId=' + ordrInnb;
|
param += '&orderId=' + ordrInnb;
|
||||||
param += '&setleAmt=' + setleAmt;
|
param += '&setleAmt=' + setleAmt;
|
||||||
|
|
||||||
const encodedParam = encodeURIComponent(param);
|
console.log("param:::"+ param);
|
||||||
pf.HOMEURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPaySuccss"/>' + encodedParam;
|
|
||||||
pf.FAILURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPayFail"/>'+ encodedParam;
|
|
||||||
|
|
||||||
console.log("HOMEURL:::"+ pf.HOMEURL.value);
|
const encodedParam = encodeURIComponent(param);
|
||||||
console.log("FAILURL:::"+ pf.FAILURL.value);
|
|
||||||
|
console.log("encodedParam:::"+ encodedParam);
|
||||||
|
|
||||||
|
document.payForm.HOMEURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPaySuccss"/>' + encodedParam;
|
||||||
|
document.payForm.FAILURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPayFail"/>'+ encodedParam;
|
||||||
|
*/
|
||||||
|
|
||||||
|
document.payForm.HOMEURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPaySuccss"/>';
|
||||||
|
document.payForm.FAILURL.value=window.location.origin + '<c:url value="/sopmal/pay/kiwoomPayFail"/>';
|
||||||
|
|
||||||
|
console.log("HOMEURL:::"+ document.payForm.HOMEURL.value);
|
||||||
|
console.log("FAILURL:::"+ document.payForm.FAILURL.value);
|
||||||
|
|
||||||
kiwoomPay();
|
kiwoomPay();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
pf = document.payForm;
|
|
||||||
pf.ORDERNO.value = getTimeStamp();
|
|
||||||
}
|
|
||||||
|
|
||||||
function pay() {
|
function pay() {
|
||||||
pf = document.payForm;
|
pf = document.payForm;
|
||||||
|
|
||||||
@@ -142,36 +141,18 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTimeStamp() {
|
|
||||||
var d = new Date();
|
|
||||||
var month = d.getMonth() + 1
|
|
||||||
var date = d.getDate()
|
|
||||||
var hour = d.getHours()
|
|
||||||
var minute = d.getMinutes()
|
|
||||||
var second = d.getSeconds()
|
|
||||||
|
|
||||||
month = (month < 10 ? "0" : "") + month;
|
|
||||||
date = (date < 10 ? "0" : "") + date;
|
|
||||||
hour = (hour < 10 ? "0" : "") + hour;
|
|
||||||
minute = (minute < 10 ? "0" : "") + minute;
|
|
||||||
second = (second < 10 ? "0" : "") + second;
|
|
||||||
|
|
||||||
var s = d.getFullYear() + month + date + hour + minute + second
|
|
||||||
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<%-- Controller에 넘어가는 값 --%>
|
<%-- Controller에 넘어가는 값 --%>
|
||||||
<form name="order_info" id="order_info">
|
<form name="order_info" id="order_info" method="post" action="<c:url value="/sopmal/ordr/insertKiwoomSetle"/>">
|
||||||
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
|
<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="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
|
||||||
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
|
<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="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
|
||||||
|
|
||||||
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
|
<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="setleAmt" class="setleAmt" value="${data.setle.wonSetleAmt}"/> <!-- 결제 금액 -->
|
||||||
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
|
<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="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
|
||||||
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
||||||
@@ -198,7 +179,7 @@
|
|||||||
<input type="hidden" name="USERID" value="${data.ordr.mbrId}" /> <!-- 고객 ID -->
|
<input type="hidden" name="USERID" value="${data.ordr.mbrId}" /> <!-- 고객 ID -->
|
||||||
<input type="hidden" name="HOMEURL" value="" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
|
<input type="hidden" name="HOMEURL" value="" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
|
||||||
<input type="hidden" name="FAILURL" value="" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
|
<input type="hidden" name="FAILURL" value="" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
|
||||||
|
<input type="hidden" name="DIRECTRESULTFLAG" value="" /> <!-- 키움페이 결제 완료 창 없이 HOMEURL로 바로 이동(Y/N) -->
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
|
||||||
|
|
||||||
|
<%--
|
||||||
|
Class Name : OrdrPay.jsp
|
||||||
|
Description : 결제
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2024-04-11 김혜인 최초 생성
|
||||||
|
--%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<%-- 공통 include --%>
|
||||||
|
<jsp:include page="/WEB-INF/views/comm/Include.jsp"/>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
//alert($('#message').val());
|
||||||
|
|
||||||
|
const status = $('#status').val();
|
||||||
|
|
||||||
|
if ('0' === status) {
|
||||||
|
let form = $('<form></form>');
|
||||||
|
|
||||||
|
$(form).attr('method', 'post');
|
||||||
|
$(form).attr('action', '<c:url value="/sopmal/ordr/selectOrdrCompt"/>');
|
||||||
|
history.replaceState(null, '', '/sopmal/ordr/selectOrdrCompt');
|
||||||
|
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:$('#sopmalCd').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:$('#ordrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'message', value:$('#message').val()}));
|
||||||
|
|
||||||
|
$(form).appendTo('body');
|
||||||
|
$(form).submit();
|
||||||
|
} else {
|
||||||
|
const form = $('<form></form>');
|
||||||
|
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sopmalCd', value:$('#sopmalCd').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', value:$('#ordrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'mbrInnb', value:$('#mbrInnb').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'mbrId', value:$('#mbrId').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'sesionId', value:$('#sesionId').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'message', value:$('#message').val()}));
|
||||||
|
$(form).append($('<input/>', {type:'hidden', name:'subsvcInnb', value:$('#subsvcInnb').val()}));
|
||||||
|
|
||||||
|
$(form).attr('method', 'post');
|
||||||
|
$(form).attr('action', '<c:url value="/sopmal/ordr/selectOrdrFailr"/>');
|
||||||
|
history.replaceState(null, '', '/sopmal/ordr/selectOrdrFailr');
|
||||||
|
|
||||||
|
$(form).appendTo('body');
|
||||||
|
$(form).submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<form name="successForm" id="successForm">
|
||||||
|
<input type="hidden" name="status" id="status" value="${data.status}"/>
|
||||||
|
<input type="hidden" name="message" id="message" value="${data.message}"/>
|
||||||
|
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${paramVO.sopmalCd}"/>
|
||||||
|
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${paramVO.orderId}"/>
|
||||||
|
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${paramVO.mbrInnb}"/>
|
||||||
|
<input type="hidden" name="mbrId" id="mbrId" value="${paramVO.mbrId}"/>
|
||||||
|
<input type="hidden" name="sesionId" id="sesionId" value="${paramVO.sesionId}"/>
|
||||||
|
<input type="hidden" name="subsvcInnb" id="subsvcInnb" value="${subsvcInnb}"/>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -51,6 +51,8 @@
|
|||||||
<p>메세지 : <span id="resMessage"></span></p>
|
<p>메세지 : <span id="resMessage"></span></p>
|
||||||
<p>결과코드 : <span id="resCode"></span><p>
|
<p>결과코드 : <span id="resCode"></span><p>
|
||||||
|
|
||||||
|
<input type="button" onclick="window.opener.kiwoom_Completepayment(); self.close();" value="확인"/>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user