결제 - 키움결제 적용 3차

This commit is contained in:
이경숙
2026-03-31 14:31:37 +09:00
parent 63b675f435
commit 2632b23056
7 changed files with 165 additions and 71 deletions

View File

@@ -3403,38 +3403,6 @@
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) => {
@@ -3467,7 +3435,7 @@
}
}
const sjCn = {sj: sj,
cn: stplatCn};
cn: stplatCn};
fn_select_clause2(sjCn,agreeAt);
}
});
@@ -3497,6 +3465,38 @@
}
</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:when test="${data.payInfo.kcpMid eq 'T0007'}">
<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>
</head>
<body>

View File

@@ -29,9 +29,7 @@
<script type="text/javascript" language="javascript">
$(document).ready(function() {
var pf = document.payForm;
/*
const orderForm = $('#order_info');
const setleTyCd = orderForm.find('.setleTyCd').val();
const setleAmt = orderForm.find('.setleAmt').val();
@@ -54,24 +52,25 @@
param += '&orderId=' + ordrInnb;
param += '&setleAmt=' + setleAmt;
const encodedParam = encodeURIComponent(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("param:::"+ param);
console.log("HOMEURL:::"+ pf.HOMEURL.value);
console.log("FAILURL:::"+ pf.FAILURL.value);
const encodedParam = encodeURIComponent(param);
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();
});
function init() {
pf = document.payForm;
pf.ORDERNO.value = getTimeStamp();
}
function pay() {
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>
</head>
<body>
<%-- 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="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="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="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<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="HOMEURL" value="" /> <!-- 결제 성공 후, 이동할 URL(결제 창에서 이동) -->
<input type="hidden" name="FAILURL" value="" /> <!-- 결제실패 후, 확인버튼 입력 시 이동할 URL -->
<input type="hidden" name="DIRECTRESULTFLAG" value="" /> <!-- 키움페이 결제 완료 창 없이 HOMEURL로 바로 이동(Y/N) -->
</form>
</body>
</html>

View File

@@ -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>

View File

@@ -51,6 +51,8 @@
<p>메세지 : <span id="resMessage"></span></p>
<p>결과코드 : <span id="resCode"></span><p>
<input type="button" onclick="window.opener.kiwoom_Completepayment(); self.close();" value="확인"/>
</section>
</body>
</html>