Files
sake/src/main/webapp/WEB-INF/views/sopmal/ordr/OrdrReqstKiwoomPayR.jsp

167 lines
7.9 KiB
Plaintext

<%@ 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 : PayKiwoomPayC.jsp
Description : 키움 결제창
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2026-03-18 이경숙 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<!-- <meta charset="UTF-8"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<script src="<c:url value='/pc/vendor/jquery-3.7.1.min.js'/>"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
var pf;
pf = document.payForm;
pf.HOMEURL.value=window.location.origin + '<c:url value="/sopmal/ordr/kiwoomPayPreSuccss"/>';
pf.FAILURL.value=document.payForm.HOMEURL.value;
const form = document.forms['order_info'];
sessionStorage.setItem("orderFormData", JSON.stringify({
sopmalCd: form.sopmalCd.value,
ordrInnb: form.ordrInnb.value,
pgCmpnyNm: form.pgCmpnyNm.value,
setleTyCd: form.setleTyCd.value
}));
//kiwoomPay();
//});
// function kiwoomPay() {
// 입력값 가져오기
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/ordr/kiwoomPayGetEnc"/>';
// AJAX로 kiwoom_ENC 값 요청
$.ajax({
url : url, // 새로 만들어줄 JSP
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>
<%-- Controller에 넘어가는 값 --%>
<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.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}"/>
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/>
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" />
<input type="hidden" name="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
</form>
<%-- 결제창에 넘어가는 값 --%>
<form name="payForm" accept-charset="euc-kr">
<%-- 개발환경:DEV / 서버환경 : LIVE --%>
<c:choose>
<c:when test="${'CTS18056' == data.setle.siteCdMid}">
<input type="hidden" name="SERVER" value="DEV" />
</c:when>
<c:otherwise>
<input type="hidden" name="SERVER" value="LIVE" />
</c:otherwise>
</c:choose>
<input type="hidden" name="CPID" value="${data.setle.siteCdMid}"/> <%-- 상점아이디 개발:CTS18056 / 운영:CFO20585,CFO20586--%>
<input type="hidden" name="TYPE" value="${data.ordr.sknEnvrnCd}" /> <%-- 결제방식(P:PC/M:모바일/W:웹뷰) 스킨환경코드(P:PC, M:mobile, TM:TM주문)--%>
<input type="hidden" name="PAYMETHOD" value="CARD"/> <%-- 결제수단 (CARD:카드/NAVERPAY:네이버페이)--%>
<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="ORDERNO" value="${data.setle.ordrInnb}"/> <%-- 주문번호 --%>
<input type="hidden" name="AMOUNT" value="${data.setle.wonSetleAmt}" /><%-- 결제금액 --%>
<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 --%>
<input type="hidden" name="DIRECTRESULTFLAG" value="" /> <%-- 키움페이 결제 완료 창 없이 HOMEURL로 바로 이동(Y/N) --%>
</form>
</body>
</html>