초기소스
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
<%@ 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">
|
||||
<header>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<%-- 공통 include --%>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
|
||||
const ordr_idxx = $('input[name="ordr_idxx"]').val();
|
||||
const good_mny = $('input[name="good_mny"]').val();
|
||||
const good_name = $('input[name="good_name"]').val();
|
||||
const pay_method = $('input[name="pay_method"]').val();
|
||||
const escw_used = $('input[name="escw_used"]').val();
|
||||
const retUrl = window.location.origin + '<c:url value="/sopmal/ordr/insertKcpMobileSetle"/>'
|
||||
//retUrl = retUrl.replace(/www\./g, '');
|
||||
|
||||
//거래등록을 위한 param
|
||||
const param = {
|
||||
//'site_cd': 'T0007',
|
||||
'site_cd': '${data.setle.siteCdMid}',
|
||||
'ordr_idxx': ordr_idxx,
|
||||
'good_mny': good_mny,
|
||||
'good_name': good_name,
|
||||
'pay_method': pay_method,
|
||||
'Ret_URL': retUrl,
|
||||
'escw_used': escw_used,
|
||||
'user_agent': '',
|
||||
'sopmalCd': '${data.ordr.sopmalCd}'
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
contentType: 'application/json',
|
||||
url: '<c:url value="/sopmal/ordr/selectKcpTradeReg"/>',
|
||||
data: JSON.stringify(param),
|
||||
dataType: 'json',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
if (data.resBody != null) {
|
||||
const result = JSON.parse(data.resBody.result);
|
||||
|
||||
if (!fn_is_empty(result)) {
|
||||
const response = JSON.parse(result.response);
|
||||
|
||||
if (!fn_is_empty(response)) {
|
||||
|
||||
if ('0000' === response.Code) {
|
||||
const form = $('#order_info');
|
||||
|
||||
$(form).find('input[name="approval_key"]').val(response.approvalKey);
|
||||
$(form).find('input[name="traceNo"]').val(response.traceNo);
|
||||
$(form).find('input[name="PayUrl"]').val(response.PayUrl);
|
||||
$(form).find('input[name="Ret_URL"]').val(retUrl);
|
||||
|
||||
create_goodInfo();
|
||||
create_virtdate();
|
||||
call_pay_form();
|
||||
} else {
|
||||
alert(response.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
error: function (data) {
|
||||
fn_call_alert_modal('<spring:message code="error.internal-server"/>');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function create_goodInfo() {
|
||||
if(document.order_info.pay_mod.value=='Y') {
|
||||
var chr31 = String.fromCharCode(31); // ASCII 코드값 31
|
||||
var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.setleAmt}";
|
||||
document.order_info.good_info.value = good_info;
|
||||
}
|
||||
}
|
||||
|
||||
function create_virtdate(){
|
||||
//가상계좌 입금기한 설정
|
||||
const orderForm = $('#order_info');
|
||||
let dueDate = orderForm.find('.dueDate').val();
|
||||
let date = new Date();
|
||||
date.setDate(date.getDate() + (dueDate - 1)); // 오늘 기준 +2일
|
||||
|
||||
let yyyy = date.getFullYear();
|
||||
let yy = String(date.getFullYear()).slice(2); // 연도의 마지막 2자리
|
||||
let mm = String(date.getMonth() + 1).padStart(2, '0'); // 월 (0부터 시작하므로 +1 필요)
|
||||
let dd = String(date.getDate()).padStart(2, '0'); // 일
|
||||
|
||||
let fDueDate = yyyy+mm+dd;
|
||||
orderForm.find('.ipgmDate').val(fDueDate);
|
||||
}
|
||||
</script>
|
||||
</header>
|
||||
<body>
|
||||
<form name="order_info" id="order_info" method="post">
|
||||
<!-- 공통정보 -->
|
||||
<input type="hidden" name="req_tx" value="pay" />
|
||||
<input type="hidden" name="site_cd" value="${data.setle.siteCdMid}" /> <!-- NHN KCP 발급 사이트코드 -->
|
||||
<input type="hidden" name="site_name" value="${data.ordr.sopmalNm}" /> <!-- 상점이름(영문으로 작성권장) -->
|
||||
<input type="hidden" name="currency" value="410"/> <!-- 화폐단위 원화 - WON : 410 -->
|
||||
|
||||
<!-- 결제 수단 -->
|
||||
<c:if test="${'01' == data.setle.setleTyCd}">
|
||||
<input type="hidden" name="pay_method" value="CARD" /> <!-- 신용카드 -->
|
||||
<input type="hidden" name="ActionResult" value="card" /> <!-- 신용카드 -->
|
||||
</c:if>
|
||||
|
||||
<c:if test="${'03' == data.setle.setleTyCd}">
|
||||
<input type="hidden" name="pay_method" value="BANK" /> <!-- 계좌이체 -->
|
||||
<input type="hidden" name="ActionResult" value="acnt" /> <!-- 계좌이체 -->
|
||||
</c:if>
|
||||
|
||||
<c:if test="${'04' == data.setle.setleTyCd || '05' == data.setle.setleTyCd}"> <!-- 가상계좌 || 가상계좌(에스크로) -->
|
||||
<input type="hidden" name="pay_method" value="VCNT" /> <!-- 가상계좌 -->
|
||||
<input type="hidden" name="ActionResult" value="vcnt" /> <!-- 가상계좌 -->
|
||||
</c:if>
|
||||
|
||||
<c:if test="${'10' != data.setle.setleTyCd}">
|
||||
<input type="hidden" name="payco_direct" value="" />
|
||||
</c:if>
|
||||
|
||||
<c:if test="${'10' == data.setle.setleTyCd}">
|
||||
<input type="hidden" name="payco_direct" value="Y" />
|
||||
<input type="hidden" name="pay_method" value="CARD" /> <!-- 신용카드 -->
|
||||
<input type="hidden" name="ActionResult" value="card" /> <!-- 신용카드 -->
|
||||
</c:if>
|
||||
|
||||
<!-- 인증시 필요한 파라미터(변경불가)-->
|
||||
<input type="hidden" name="van_code" value=""/>
|
||||
|
||||
<!-- 신용카드 설정 -->
|
||||
<input type="hidden" name="quotaopt" value="12"/> <!-- 최대 할부개월수 -->
|
||||
<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
|
||||
<input type="hidden" name="Ret_URL" value="" />
|
||||
<!-- 가맹점에서 APP으로 연동 시, 타 APP에서 가맹점 APP을 다시 호출하기 위한 값 ( 가맹점 APP 연동 시 필수 ) -->
|
||||
<input type="hidden" name="AppUrl" value="" />
|
||||
|
||||
<!-- 화면 크기조정 -->
|
||||
<input type="hidden" name="tablet_size" value="1.0 " />
|
||||
|
||||
<!-- 거래등록 응답값 -->
|
||||
<input type="hidden" name="approval_key" value=""/>
|
||||
<input type="hidden" name="traceNo" value="" />
|
||||
<input type="hidden" name="PayUrl" value="" />
|
||||
<!-- 인증창 호출 시 한글깨질 경우 encoding 처리 추가 (**인코딩 네임은 대문자) -->
|
||||
<input type="hidden" name="encoding_trans" value="UTF-8" />
|
||||
|
||||
<!-- 주문정보 -->
|
||||
<input type="hidden" name="ordr_idxx" value="${data.ordr.ordrInnb}"/> <!-- 상점 관리 주문번호 -->
|
||||
<input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
|
||||
<input type="hidden" name="good_mny" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
|
||||
<input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
|
||||
<input type="hidden" name="buyr_tel2" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
|
||||
<input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
|
||||
|
||||
<input type="hidden" name="dueDate" class="dueDate" value="${data.setle.dueDt}"/>
|
||||
<input type="hidden" name="ipgm_date" class="ipgmDate" value=""/>
|
||||
|
||||
|
||||
<!-- ========== 에스크로 정보 Start =============================== -->
|
||||
<!-- 에스크로 사용 여부 : 반드시 Y 로 설정 -->
|
||||
<input type="hidden" name="escw_used" value="Y"/>
|
||||
|
||||
<c:choose>
|
||||
<c:when test="${'05' == data.setle.setleTyCd}">
|
||||
<!-- <input type="hidden" name="pay_method" value="001000000000" /> 가상계죄(에스크로) 이지만 KCP 결제코드는 가상계좌 -->
|
||||
|
||||
<input type="hidden" name="rcvr_name" value="${data.shipping.recpntNm}" /> <!-- 수취인명 -->
|
||||
<input type="hidden" name="rcvr_tel1" value="${data.shipping.recpntTelnb}" /> <!-- 수취인 연락처1 -->
|
||||
<input type="hidden" name="rcvr_tel2" value="${data.shipping.recpntMbtlnb}" /> <!-- 수취인 휴대폰번호 -->
|
||||
<input type="hidden" name="rcvr_mail" value="" /> <!-- 수취인 E-mail -->
|
||||
<input type="hidden" name="rcvr_zipx" value="${data.shipping.dlvylcZip}" /> <!-- 수취인 우편번호 -->
|
||||
|
||||
<c:if test="${'01' == data.shipping.dlvylcAdresDvCd}">
|
||||
<input type="hidden" name="rcvr_add1" value="${data.shipping.dlvylcRnmAdres}" /> <!-- 수취인 주소 -->
|
||||
</c:if>
|
||||
<c:if test="${'02' == data.shipping.dlvylcAdresDvCd}">
|
||||
<input type="hidden" name="rcvr_add1" value="${data.shipping.dlvylcLnbAdres}" /> <!-- 수취인 주소 -->
|
||||
</c:if>
|
||||
<input type="hidden" name="rcvr_add2" value="${data.shipping.dlvylcAdresDtl}" /> <!-- 수취인 상세주소 -->
|
||||
|
||||
<input type="hidden" name="pay_mod" value="Y"/> <!-- 에스크로 결제처리 모드 : 에스크로: Y, 일반: N -->
|
||||
<input type="hidden" name="deli_term" value="03"/> <!-- 배송 소요일 : 예상 배송 소요일을 입력 (두자리수로 입력) -->
|
||||
<input type="hidden" name="bask_cntx" value="1"/> <!-- 장바구니 상품 종류수 -->
|
||||
<input type="hidden" name="good_info" value=""/> <!-- 장바구니 상품 상세 정보 -->
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<input type="hidden" name="pay_mod" value="N"/> <!-- 에스크로 결제처리 모드 : 에스크로: Y, 일반: N -->
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<!-- ========== 에스크로 필수정보 End =============================== -->
|
||||
|
||||
|
||||
<!-- 추가 파라미터 ( 가맹점에서 별도의 값전달시 param_opt 를 사용하여 값 전달 ) -->
|
||||
<input type="hidden" name="param_opt_1" id="sopmal_cd" value="${data.ordr.sopmalCd}"/>
|
||||
<input type="hidden" name="param_opt_2" id="sesion_id" value="${data.ordr.sesionId += '|' += data.ordr.mbrInnb += '|' += data.ordr.mbrId}" />
|
||||
<input type="hidden" name="param_opt_3" id="pg_cmpny_nm" value="${data.setle.pgCmpnyNm += '|' += data.setle.setleTyCd}" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user