초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,163 @@
<%@ 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 : OrdrReqstTossPayR.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">
<script>
let setleData = ['common', '카드', '계좌이체', '가상계좌'];
$(document).ready(function() {
let paymentType = '';
const orderForm = $('#order_info');
const setleTyCd = orderForm.find('.setleTyCd').val();
const sopmalCd = orderForm.find('.sopmalCd').val();
const mbrInnb = orderForm.find('.mbrInnb').val();
const mbrId = orderForm.find('.mbrId').val();
const pgCmpnyNm = orderForm.find('.pgCmpnyNm').val();
const ordrrNm = orderForm.find('.ordrrNm').val();
let param = '?sopmalCd=' + sopmalCd;
param += '&mbrInnb=' + mbrInnb;
param += '&mbrId=' + mbrId;
param += '&pgCmpnyNm=' + pgCmpnyNm;
param += '&setleTyCd=' + setleTyCd;
param += '&ordrrNm=' + ordrrNm;
const encodedParam = encodeURIComponent(param);
const successUrl = window.location.origin + '<c:url value="/sopmal/ordr/insertTossSetle"/>' + encodedParam;
const failUrl = window.location.origin + '<c:url value="/sopmal/ordr/selectOrdrFailr"/>' + encodedParam;
//const callbackUrl = window.location.origin + '<c:url value=""/>';
//가상계좌 입금기한 설정
let dueDate = orderForm.find('.dueDate').val();
let date = new Date();
date.setDate(date.getDate() + (dueDate - 1));
let fDueDate = date.toISOString().split('T')[0]+ "T23:59:59+09:00"; // 날짜(YYYY-MM-DD) ISO 8601 형식
setleData['common'] = {
'amount': '',
'orderId': '',
'orderName': '',
'customerName': '',
'customerEmail': null,
'customerMobilePhone': null,
'successUrl':successUrl,
'failUrl':failUrl,
'windowTarget': 'iframe',
'taxFreeAmount': null,
'cultureExpense': false
};
if ('01' === setleTyCd) { // 신용카드
paymentType = '카드';
setleData[paymentType] = {
'cardCompany':null,
'cardInstallmentPlan':null,
'maxCardInstallmentPlan':null,
'freeInstallmentPlans':null,
'useCardPoint':false,
'useAppCardOnly':false,
'useInternationalCardOnly':false,
'flowMode':'DEFAULT',
'easyPay':null,
'discountCode':null,
'appScheme':null
};
} else if ('03' === setleTyCd) { // 실시간 계좌이체
paymentType = '계좌이체';
setleData[paymentType] = {
'cashReceipt':{
'type':'소득공제'
},
'useEscrow':false
};
} else if ('04' === setleTyCd) { // 가상계좌
paymentType = '가상계좌';
setleData[paymentType] = {
'dueDate':fDueDate,
'cashReceipt':{
'type':'미발행'
},
'useEscrow':false,
'currency':'KRW'//,'callbackUrl':callbackUrl
};
} else if ('05' === setleTyCd) { // 가상계좌(에스크로)
paymentType = '가상계좌';
setleData[paymentType] = {
'dueDate':fDueDate,
'cashReceipt':{
'type':'미발행'
},
'useEscrow':true,
'currency':'KRW'//,'callbackUrl':callbackUrl
};
} else if ('10' === setleTyCd) { // 페이코
paymentType = '카드';
setleData[paymentType] = {
flowMode: "DIRECT",
easyPay: "페이코",
};
}
pay(paymentType, initPaymentsData('common', paymentType), pgCmpnyNm);
});
/* ============= [공통] + [결제수단] JSON DATA 합치기 ================= */
function initPaymentsData(general, paymentType){
const orderForm = $('#order_info');
const setleAmt = orderForm.find('.setleAmt').val();
const ordrInnb = orderForm.find('.ordrInnb').val();
const goodsNm = orderForm.find('.goodsNm').val();
const ordrrNm = orderForm.find('.ordrrNm').val();
setleData[general].amount = setleAmt;
setleData[general].orderId = ordrInnb;
setleData[general].orderName = goodsNm;
setleData[general].customerName = ordrrNm;
return Object.assign(setleData[general], setleData[paymentType]);
}
</script>
</head>
<body>
<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="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" id="sesionId" class="sesionId" value="${data.ordr.sesionId}" />
<input type="hidden" name="dueDate" class="dueDate" value="${data.setle.dueDt}" /> <!-- 가상계좌 입금기한 -->
</form>
</body>
</html>