mjon_git/src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
2023-08-08 12:00:02 +09:00

1050 lines
46 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ 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="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
<!-- KG 모빌리언스 -->
<script src="https://mup.mobilians.co.kr/js/ext/ext_inc_comm.js"></script>
<script type="text/javascript" src="<c:url value='/js/MJUtill.js'/>"></script>
<script>
//탭이동
var tabType = "${tabType}";
$(document).ready(function(){
// 충전금액 세팅
setPriceMake();
setNumberOnly();//숫자만입력
// 전용계좌 화면으로 이동
if (tabType == "2") {
$("#btnDdedicatedAccount").trigger("click");
}
// 등급제 대상 여부
getMberGrdChk();
});
//결제수단 상태 체크
function checkPayTypeStatusAjax(payMethod) {
document.payTypeForm.payTypeCode.value = payMethod;
var payTypeForm = new FormData(document.payTypeForm);
var statusChk = "Y";
$.ajax({
type: "POST",
url: "/web/member/pay/checkPayTypeStatusAjax.do",
data: payTypeForm,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData) {
if("success"==returnData.result){
//결제수단 사용
statusChk = "Y";
}else if("statusFail"==returnData.result){
//회원상태 이용정지
alert(returnData.message);
statusChk = "B";
} else if("tempNotUse"==returnData.result){
//결제수단 미사용
alert(returnData.message);
statusChk = "N";
}
},
error: function (e) {
alert("시스템 에러가 발생하였습니다..");
console.log("ERROR : ", e);
statusChk = "N";
}
});
return statusChk;
}
// 후불제여부 체크
function getMjUserAfterPayCheck() {
var isAfterPay = false;
$.ajax({
type: "POST",
url: "/web/main/selectUserAfterPayAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
if (data.isAfterPay == true) {
isAfterPay = true;
}
}
},
error: function (e) {
}
});
return isAfterPay;
}
/* 문서 파일 팝업 */
var pg_opener = null;
function pgOpenerPopup(){
// 후불제여부 체크
if (getMjUserAfterPayCheck() == true) {
alert("후불제 고객은 해당 서비스를 이용할수 없습니다.");
return false;
}
var $currentTab = $('.area_tab').children('.active').index();
var lastPrice = parseInt($("#price").val(), 10);
if(lastPrice == "" || lastPrice == "0" || lastPrice == null || lastPrice == undefined){
//충전금액
alert("충전금액을 선택해주세요.");
return false;
}
var payMethod = "";
document.pgForm.action = "/web/member/pay/PayActionAjax.do";
if($currentTab==0){ payMethod = "CARD";}
else if($currentTab==1){ payMethod = "VBANK"; }
/*else if($currentTab==2){ payMethod = "TEMP_CARD"; }*/
else if($currentTab==2){ payMethod = "CELLPHONE";
document.pgForm.action = "/web/kgm/pay/KGMPayActionAjax.do";
}
else if($currentTab==3){ payMethod = "BANK"; }
$('input[name=payMethod]').val(payMethod);
//결제수단 상태 체크
var payStatus = checkPayTypeStatusAjax(payMethod);
if(payStatus == "N") {
//결제수단 미사용상태
return false;
} else if(payStatus == "B") {
//회원정지상태 로그아웃 새로고침
location.reload(true);
return false;
}
var docWidth = screen.availWidth;
var docHeight = screen.availHeight;
var scX = window.screenX||window.screenLeft||0;
var scY = window.screenY||window.screenTop||0;
var popupX = scX + (docWidth - 185) / 2;
var popupY = scY + (docHeight - 195) / 2;
if ($currentTab==2) {
// 휴대폰결제
//KG 모빌리언스
kgmPayRequest();
//pg_opener = window.open('', 'pg_opener', "width=520, height=250, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
}
else {
// 기타
pg_opener = window.open('', 'pg_opener', "width=790, height=505, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");
document.pgForm.method = "post";
document.pgForm.target = "pg_opener" ;
document.pgForm.submit();
}
}
// 사용안함
function setPrice(obj, price){
var tmp = $(obj).closest('.flex').find('.tempPrice');
if(tmp.val() == ''){
tmp.val('0');
}
tmp.val(parseInt(tmp.val()) + parseInt(price)) ;
}
//전용계좌 받기 새화면
function payVAListAjax(){
var sendData= '';
$("#tab2_2").load("/web/member/pay/selectPayVAViewAjax.do", sendData ,function(response, status, xhr){
});
}
//신규 전용 계좌 받기
function fnNewBankAccount(){
// 후불제여부 체크
if (getMjUserAfterPayCheck() == true) {
alert("후불제 고객은 해당 서비스를 이용할수 없습니다.");
return false;
}
//결제수단 상태 체크
if(checkPayTypeStatusAjax("VBANK") == "N") {
return false;
}
var bankCd = $("#bankCd").val();
if(bankCd == ''){
alert("은행을 선택해 주세요.");
return false;
}
var data = new FormData(document.pgForm);
url = "/web/member/pay/updateVacsAccountUsrIdAjax.do";
$.ajax({
type: "POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if("fail"==returnData.result){
alert(returnData.message);
return false;
}else if("loginFail"==returnData.result){
alert(returnData.message);
return false;
}else if("statusFail"==returnData.result){
alert(returnData.message);
location.reload(true);
}else if(returnData.resultListCnt == '0'){
alert("전용계좌 요청이 실패하었습니다.");
return false;
}else{ //전용계좌 신청 성공시 처리
alert("전용계좌 요청이 완료 되었습니다.");
location.reload();
}
} else if(status== 'fail'){
alert(returnData.message);
}
},
error: function (e) { alert("전용계좌 등록에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
// 계좌번호 문자로 받기
function fnSmsSend(sendCnt){
// 후불제여부 체크
if (getMjUserAfterPayCheck() == true) {
alert("후불제 고객은 해당 서비스를 이용할수 없습니다.");
return false;
}
var form = document.pgForm;
if(sendCnt >= 3){
alert("일일 문자발송은 3회까지만 가능합니다.");
return false;
}
if(form.callTo.value == '' || form.callTo.length == 0){
alert("받으실 휴대폰 번호를 입력해 주세요.");
return false;
}
if(!checkHpNum(form.callTo.value)){
alert("정확한 휴대폰 번호를 입력해 주세요.");
return false;
}
if($('input[name="chkAccount"]').is(':checked')){
var accStr = ''; //전송 계좌 번호 정보
$('input[name="chkAccount"]:checked').each(function(i,val){
var nowStr = $(this).val();
if(i == 0){
accStr = nowStr;
}else{
accStr = accStr + "/" + nowStr;
}
});
form.accMsg.value = accStr;
var data = new FormData(document.pgForm);
url = "/web/member/pay/insertVacsAccountSendMsgLogAjax.do";
if(confirm("문자를 발송하시겠습니까?")){
$.ajax({
type: "POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if("fail"==returnData.result){
alert(returnData.message);
return false;
}else if("loginFail"==returnData.result){
alert(returnData.message);
return false;
}else if(returnData.resultListCnt == '0'){
alert("문자 전송에 실패하었습니다.");
return false;
}else{ //전용계좌 신청 성공시 처리
alert("문자 전송이 완료 되었습니다.");
location.reload();
}
} else if(status== 'fail'){
alert(returnData.message);
}
},
error: function (e) { alert("문자 전송에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}else{
alert("문자받을 계좌를 선택해 주세요.");
return false;
}
}
//KG 모빌리언스
function kgmPayRequest() {
//var $currentTab = $('.area_tab').children('.active').index();
//$("#Prdtprice").val($('.area_tabcont:eq('+$currentTab+')').find('.tempPrice').val());
// New
$("#Prdtprice").val($("#price").val());
//아래와 같이 ext_inc_comm.js에 선언되어 있는 함수를 호출
MCASH_PAYMENT(document.payForm);
}
/* 윈도우팝업 열기 */
function infoPop(pageUrl){
document.infoPopForm.pageType.value = pageUrl;
document.infoPopForm.action = "/web/pop/infoPop.do";
document.infoPopForm.method = "post";
window.open("about:blank", 'infoPop', 'width=790, height=220, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
document.infoPopForm.target = "infoPop";
document.infoPopForm.submit();
}
//충전금액 Change Event
$(document).on('change', '.list_seType1', function() {
// 충전금액 세팅
setPriceMake();
});
// 충전금액 세팅
function setPriceMake() {
var $currentTab = $('.area_tab').children('.active').index();
var $tempPrice = $('.area_tabcont:eq('+$currentTab+')').find('.list_seType1');
var tempPrice = parseInt($tempPrice.val(), 10);
var vatPrice = Math.round(parseInt(tempPrice, 10) * 0.1); // 부가세
var lastPrice = parseInt(tempPrice, 10) + parseInt(vatPrice, 10); // 최종가격
$("#price").val(lastPrice);
$('.area_tabcont:eq('+$currentTab+')').find('#supplyPriceStr').html(numberWithCommas(tempPrice));
$('.area_tabcont:eq('+$currentTab+')').find('#vatPriceStr').html(numberWithCommas(vatPrice));
$('.area_tabcont:eq('+$currentTab+')').find('#lastPriceStr').html(numberWithCommas(lastPrice));
}
// 결제하기 tab
function TabTypePay(obj, tabId) {
var $tab = $(obj).closest("li");
var $tabPrev = $(obj).closest("li").next("li");
$tab.addClass("active");
$tab.find("button").attr("title", "선택됨");
$tab.siblings("li.tab").removeClass("active");
$tab.siblings("li.btn_tab").removeClass("active");
$tab.siblings("li.tab").find("button").removeAttr("title");
$tab.siblings("li:not(li:first-child)").find("button").css("border-left","1px solid #e5e5e5");
$tabPrev.find("button").css("border-left","0");
var $tabCn = $("#tab2_" + tabId);
$tabCn.fadeIn(0);
$tabCn.addClass("current");
$(".bottom_content").not($tabCn).removeClass("current");
$(".bottom_content").not($tabCn).fadeOut(0);
$(".area_tabcont").not($tabCn).removeClass("on");
$(".area_tabcont").not($tabCn).fadeOut(0);
currTabId = tabId;
// 충전금액 세팅
setPriceMake();
}
// 등급제 대상 여부
function getMberGrdChk() {
$.ajax({
type: "POST",
url: "/web/grd/mberGrdChkAjax.do",
data: {},
dataType:'json',
async: false,
success: function (data) {
if (data.isSuccess) {
// 등급제 누적결제액 세부내역
var sHtml = "";
sHtml += "<p>등급 : <span><img src='/publish/images/level/level_icon/level_small/" + data.rtnMberGrdVO.grdSetIcon + "_small_icon.png' alt='등급 스몰 아이콘'>" + data.rtnMberGrdVO.grdSetNm;
sHtml += "(누적결제액 : &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span>" + numberWithCommas(data.rtnMberGrdVO.totAmt) + "</span>원)</span></p>";
$("#grdShowArea").html(sHtml);
$("#grdShowArea").show();
$("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
// 문자(등급별 요금 안내)
$("#mberGrdSettingArea").show();
}
else {
//alert("Msg : " + data.msg);
}
},
error: function (e) {
//alert("ERROR : " + JSON.stringify(e));
}
});
}
</script>
<!-- </head>
<body> -->
<form id="payTypeForm" name="payTypeForm" method="post">
<input type="hidden" name="payTypeCode" />
</form>
<form id="pgForm" name="pgForm" action="/web/member/pay/PayActionAjax.do" method="post">
<input type="hidden" id="price" name="price" />
<input type="hidden" id="payMethod" name="payMethod" />
<input type="hidden" id="accMsg" name="accMsg" />
<input type="hidden" id="sendCnt" name="sendCnt" value="<c:out value='${resultMsgInfo.sendCnt}'/>" />
<!-- content 영역 -->
<div class="inner">
<!-- send top -->
<div class="send_top">
<!-- tab button -->
<ul class="tabType4">
<li class="tab"><button type="button" onclick="location.href='/web/pay/PayGuide.do'">요금안내/견적내기</button></li>
<li class="tab active"><button type="button">결제하기</button></li>
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li>
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayUserList.do'">요금 사용내역</button></li>
<!-- 현금영수증 자동발행 주석 -->
<!-- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">계산서/현금영수증 발행 등록</button></li> -->
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li>
</ul><!--// tab button -->
<!-- 결제관리 - 결제하기 -->
<div class="serv_content charg_cont current" id="tab5_2">
<div class="heading">
<h2>결제하기</h2>
<button type="button" class="button info" onclick="infoPop('PayView');">사용안내</button>
</div>
<%--<div class="titBox">
<p>- 서비스 이용을 위해 충전이 필수 입니다.</p>
<p>- 충전 자체로 매출 인식이 되지 않는 서비스 특성상, 부가세 신고는 전자 세금계산서로만 가능합니다.</p>
<p>- 모든 요금은 VAT별도 금액입니다.</p>
</div>--%>
<div>
<p class="tab_tit">충전수단 선택</p>
<ul class="area_tab">
<li class="btn_charge1 btn_tab active"><button type="button" onclick="TabTypePay(this,'1');"><i></i>신용카드</button></li>
<li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'2');" id="btnDdedicatedAccount"><i></i>전용계좌</button></li>
<!-- <li class="btn_charge2 btn_tab"><button type="button" onclick="TabTypePay(this,'3');"><i></i>무통장입금</button></li> -->
<li class="btn_charge3 btn_tab"><button type="button" onclick="TabTypePay(this,'4');"><i></i>휴대폰결제</button></li>
<li class="btn_charge4 btn_tab"><button type="button" onclick="TabTypePay(this,'5');"><i></i>즉시이체</button></li>
</ul>
<div class="checkbox_wrap"><input type="checkbox" id="agree"><label for="agree">선택한 수단을 다음 충전 시에도 이용합니다.</label></div>
<!-- 신용카드 -->
<div class="area_tabcont on" id="tab2_1">
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt=""> 신용카드</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="charge_content">
<th scope="row">충전금액</th>
<td class="flex">
<select name="tempPrice" id="tempPrice" class="list_seType1">
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="20000">20,000</option>
<option value="30000">30,000</option>
<option value="50000" selected>50,000</option>
<option value="100000">100,000</option>
<option value="200000">200,000</option>
<option value="300000">300,000</option>
<option value="500000">500,000</option>
<option value="700000">700,000</option>
<option value="900000">900,000</option>
<option value="1000000">1,000,000</option>
<option value="1200000">1,200,000</option>
<option value="1500000">1,500,000</option>
<option value="2000000">2,000,000</option>
<option value="2500000">2,500,000</option>
<option value="3000000">3,000,000</option>
</select>
<%--<input type="text" numberOnly placeholder="금액을 입력해주세요" name="tempPrice" class="tempPrice" onfocus="this.placeholder=''" onblur="this.placeholder='금액을 입력해주세요'">
<p class="input_in">원</p>
<button type="button" class="btnType1" onclick="setPrice(this , '3000'); return false;">+ 3천원</button>
<button type="button" onclick="setPrice(this , '5000'); return false;">+ 5천원</button>
<button type="button" onclick="setPrice(this , '10000'); return false;">+ 1만원</button>
<button type="button" onclick="setPrice(this , '100000'); return false;">+ 10만원</button>
<button type="button" onclick="setPrice(this , '1000000'); return false;">+ 100만원</button>--%>
<p class="input_in">원</p>
<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
</td>
</tr>
<tr>
<td colspan="2">
<div class="amount_wrap">
<dl>
<dt>최종 결제금액 :</dt>
<dd>
<ul>
<li><strong id="supplyPriceStr"></strong>원(공급가액)</li>
<li><span class="plus"></span><strong id="vatPriceStr"></strong>원(부가세)</li>
<li class="total"><span class="equal"></span><strong id="lastPriceStr"></strong>원(최종금액)</li>
</ul>
</dd>
</dl>
<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="area_text">
<%--<p><span class="c_222222">- 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(010-8432-9333)를 통해서도 ARS 신용카드 결제를 하실 수 있습니다.</span></p>--%>
<p>- 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.</p>
<p>- 카드사별 정책상 충전금액 제한이 있을 수 있습니다. 단, ARS 신용카드 결제는 충전금액 제한 없이 이용하실 수 있습니다.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //신용카드 -->
<!-- 전용계좌 -->
<div class="area_tabcont" id="tab2_2">
<!-- 신규계좌발급 시 -->
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt="계좌 이미"> 전용계좌</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 65%">
<col style="width: 35%">
</colgroup>
<tbody>
<tr>
<td>
<div class="area_text">
<c:choose>
<c:when test="${not empty resultMyList}">
<p>입금 즉시 자동 충전되는 나만의 전용계좌 개설(평생 사용가능, 5천원 이상 입금 가능)</p>
</c:when>
<c:otherwise>
<p>1. 현재 발급받은 전용계좌가 없습니다.</p>
<p>2. 입금 즉시 자동 충전되는 나만의 전용계좌 개설(평생 사용가능, 5천원 이상 입금 가능)</p>
</c:otherwise>
</c:choose>
<!-- <p>3. 발급받은 전용계좌는 3개월 미사용시 자동 해지됩니다.</p> -->
</div>
</td>
<td class="right">
<label for="bankCd" class="label">은행선택</label>
<select name="bankCd" id="bankCd">
<option value="">은행선택</option>
<c:forEach var="result" items="${resultList}" varStatus="status">
<option value="${result.bankCd}">${result.codeNm}</option>
</c:forEach>
</select>
<p class="input_in" style="margin-right:5px;">원</p>
<button type="button" onclick="fnNewBankAccount(); return false;">신규계좌받기</button>
</td>
</tr>
</tbody>
</table>
<!-- 기존 계좌있을 시 -->
<p class="tType1_title"><img src="/publish/images/content/icon_charging1_small.png" alt="계좌 이미"> 전용계좌</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 65%">
<col style="width: 35%;">
</colgroup>
<tbody>
<c:choose>
<c:when test="${not empty resultMyList}">
<c:forEach var="result" items="${resultMyList}" varStatus="status">
<tr>
<td>
<div class="checkbox_wrap">
<input type="radio" id="chkAccount${status.count}" name="chkAccount" value="<c:out value='${result.bankCd}'/>_<c:out value='${result.codeNm}'/>_<c:out value='${result.acctNo}'/>">
<label for="chkAccount${status.count}"></label>
<c:out value='${result.codeNm}'/> <c:out value='${result.acctNo}'/>
</div>
<div class="account_holder">
(예금주 : <c:out value="${result.cmfNm}"/>)
</div>
</td>
<td class="right">
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="2">
<div>
보유한 전용 계좌가 없습니다.
</div>
</td>
</tr>
</c:otherwise>
</c:choose>
<tr>
<td colspan="2">
<div class="area_text">
<p>- 전용계좌는 개설일로부터 <span>3개월 미사용 시 자동 해지</span>됩니다.</p>
<p>- 전용계좌에 <span>5,000원 이상 입금</span> 시, 연중무휴 <span>실시간 자동 충전이</span> 가능합니다.</p>
<p>- 이체 후 충전 확인까지 <span>최대 10분이 소요</span>됩니다.</p>
<p>- 이체금액에서 <span>부가세 10%가 제외되고 충전</span>됩니다.</p>
<!-- <p>- 예금주 : 문자온</p> -->
<p>- 계좌번호 문자로 받기(일/3회까지)
<label for="" class="label">전화번호 입력</label>
<input type="text" id="callTo" name="callTo" maxLength="11" placeholder="- 없이 받으실 휴대폰 번호를 입력해주세요." onfocus="this.placeholder=''" onblur="this.placeholder='- 없이 전화번호를 입력해주세요'">
<button type="button" onclick="fnSmsSend(<c:out value='${resultMsgInfo.sendCnt}'/>); return false;">문자받기</button>
</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //전용계좌 -->
<!-- 휴대폰 -->
<div class="area_tabcont" id="tab2_4">
<p class="tType1_title"><img src="/publish/images/content/icon_charging4_small.png" alt=""> 휴대폰결제</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="charge_content">
<th scope="row">충전금액</th>
<td class="flex">
<select name="tempPrice" id="tempPrice" class="list_seType1">
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="20000">20,000</option>
<option value="30000">30,000</option>
<option value="50000" selected>50,000</option>
<option value="100000">100,000</option>
<option value="150000">150,000</option>
</select>
<%--<input type="text" numberOnly placeholder="금액을 입력해주세요" name="tempPrice" class="tempPrice" onfocus="this.placeholder=''" onblur="this.placeholder='금액을 입력해주세요'">
<p class="input_in">원</p>
<button type="button" class="btnType1" onclick="setPrice(this , '3000'); return false;">+ 3천원</button>
<button type="button" onclick="setPrice(this , '5000'); return false;">+ 5천원</button>
<button type="button" onclick="setPrice(this , '10000'); return false;">+ 1만원</button>
<button type="button" onclick="setPrice(this , '100000'); return false;">+ 10만원</button>
<button type="button" onclick="setPrice(this , '1000000'); return false;">+ 100만원</button>--%>
<p class="input_in">원</p>
<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
</td>
</tr>
<tr>
<td colspan="2">
<div class="amount_wrap">
<dl>
<dt>최종 결제금액 :</dt>
<dd>
<ul>
<li><strong id="supplyPriceStr"></strong>원(공급가액)</li>
<li><span class="plus"></span><strong id="vatPriceStr"></strong>원(부가세)</li>
<li class="total"><span class="equal"></span><strong id="lastPriceStr"></strong>원(최종금액)</li>
</ul>
</dd>
</dl>
<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="area_text">
<p>- 월 30만원 한도 내에서 충전하실 수 있습니다.</p>
<p>- 휴대폰 소액결제 제한에 관한 사항은 가입하신 통신사를 통해 확인하실 수 있습니다.</p>
<p>- 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //휴대폰 -->
<!-- 즉시이체 -->
<div class="area_tabcont" id="tab2_5">
<p class="tType1_title"><img src="/publish/images/content/icon_charging5_small.png" alt=""> 즉시이체</p>
<table class="tType1">
<caption></caption>
<colgroup>
<col style="width: 100px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr class="charge_content">
<th scope="row">충전금액</th>
<td class="flex">
<select name="tempPrice" id="tempPrice" class="list_seType1">
<option value="5000">5,000</option>
<option value="10000">10,000</option>
<option value="20000">20,000</option>
<option value="30000">30,000</option>
<option value="50000" selected>50,000</option>
<option value="100000">100,000</option>
<option value="200000">200,000</option>
<option value="300000">300,000</option>
<option value="500000">500,000</option>
<option value="700000">700,000</option>
<option value="900000">900,000</option>
<option value="1000000">1,000,000</option>
<option value="1200000">1,200,000</option>
<option value="1500000">1,500,000</option>
<option value="2000000">2,000,000</option>
<option value="2500000">2,500,000</option>
<option value="3000000">3,000,000</option>
</select>
<%--<input type="text" numberOnly placeholder="금액을 입력해주세요" name="tempPrice" class="tempPrice" onfocus="this.placeholder=''" onblur="this.placeholder='금액을 입력해주세요'">
<p class="input_in">원</p>
<button type="button" class="btnType1" onclick="setPrice(this , '3000'); return false;">+ 3천원</button>
<button type="button" onclick="setPrice(this , '5000'); return false;">+ 5천원</button>
<button type="button" onclick="setPrice(this , '10000'); return false;">+ 1만원</button>
<button type="button" onclick="setPrice(this , '100000'); return false;">+ 10만원</button>
<button type="button" onclick="setPrice(this , '1000000'); return false;">+ 100만원</button>--%>
<p class="input_in">원</p>
<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
</td>
</tr>
<tr>
<td colspan="2">
<div class="amount_wrap">
<dl>
<dt>최종 결제금액 :</dt>
<dd>
<ul>
<li><strong id="supplyPriceStr"></strong>원(공급가액)</li>
<li><span class="plus"></span><strong id="vatPriceStr"></strong>원(부가세)</li>
<li class="total"><span class="equal"></span><strong id="lastPriceStr"></strong>원(최종금액)</li>
</ul>
</dd>
</dl>
<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="area_text">
<p>- 나이스페이 결제를 이용하여 인터넷뱅킹처럼 로그인 없이 간단한 정보 입력만으로 실시간 계좌 이체</p>
<p>&nbsp; (일반결제, 간편결제, 앱결제)를 할 수 있는 간편한 결제 수단입니다.(소득공제 및 지출증빙 가능)</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //즉시이체 -->
</div>
<!--누적결제액별 등급 및 단가 추가 시작-->
<div class="accrue_price" id="grdShowArea" style="display: none;">
</div>
<div class="accrue_level" id="mberGrdSettingArea" style="display: none;">
<p class="tType1_title level"><img src="/publish/images/level/accrue.png" alt="누적결제액별 등급 및 단가 아이콘"> 누적결제액별 등급 및 단가
</p>
<table class="tType2 tType2_level">
<caption></caption>
<colgroup>
<col style="width: 13%;">
<col style="width: auto;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
<col style="width: 11%;">
</colgroup>
<thead>
<tr>
<th>등급</th>
<th class="th_second">누적결제액<span id="levelSubTitle"></span></th>
<th>단문</th>
<th>장문</th>
<th>그림(1장)</th>
<th>그림(2장)</th>
<th>그림(3장)</th>
</tr>
</thead>
<tbody>
<c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
<tr>
<th><c:out value="${result.grdSetNm}"/></th>
<td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
<td><c:out value="${result.shortPrice}"/></td>
<td><c:out value="${result.longPrice}"/></td>
<td><c:out value="${result.picturePrice}"/></td>
<td><c:out value="${result.picture2Price}"/></td>
<td><c:out value="${result.picture3Price}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<span class="reqTxt4">
* 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br>
* 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br>
* "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br>
</span>
<p class="reqTxt4 reqTxt4_last">
* 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작
등으로 인지되는 문자에 대해서는
사전 또는 즉시 발송을 차단하고
이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을
취소합니다.
</p>
</div>
<!--문자_등급별 요금 안내 추가 끝-->
</div><!-- 결제관리 - 결제하기 -->
</div><!--// send top -->
</div>
</form>
<form name="infoPopForm" id="infoPopForm" method="post">
<input type="hidden" name="pageType" id="pageType" value=""/>
</form>
<%@page import="mup.mcash.module.common.McashCipher.*"%>
<%@page import="java.security.MessageDigest"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="itn.let.mjo.pay.service.MjonPayVO" %>
<%
//unique한 거래번호를 위한 거래일시 (밀리세컨드까지 조회)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSSS");
String appr_dtm = dateFormat.format(new Date());
String kgmServerName = request.getServerName();
String kgmPath = request.getScheme() + "://" + request.getServerName() +":" + request.getServerPort();
if (request.getServerPort() == 80) {
kgmPath = request.getScheme() + "://" + request.getServerName();
}
%>
<%
/*****************************************************************************************
- 필수 입력 항목
*****************************************************************************************/
MjonPayVO mjonPayVO = (MjonPayVO)request.getAttribute("mjonPayVO");
String CASH_GB = "MC"; //[ 2byte 고정] 결제수단구분. "MC" 고정값. 수정불가!
// 테스트
//String MC_SVCID = "170622040674"; //C //[ 12byte 고정] 모빌리언스에서 부여한 서비스ID (12byte 숫자 형식)
//String PAY_MODE = "00"; //C //[ 2byte 고정] 연동시 테스트/실결제 구분 (00: 테스트결제-비과금, 10: 실거래결제-과금)
// 운영
String MC_SVCID = "220613125202"; //C //[ 12byte 고정] 모빌리언스에서 부여한 서비스ID (12byte 숫자 형식)
String PAY_MODE = "10"; //C //[ 2byte 고정] 연동시 테스트/실결제 구분 (00: 테스트결제-비과금, 10: 실거래결제-과금)
String Okurl = kgmPath + "/web/kgm/pay/OkUrlAjax.do";
String Prdtnm = "충전하기"; //C //[ 50byte 이하] 상품명
String Siteurl = kgmServerName; // localhost [ 20byte 이하] 가맹점도메인 (예: www.mcash.co.kr)
String Tradeid = MC_SVCID + "_" + appr_dtm; //[4byte 이상, 40byte 이하] 가맹점거래번호. 결제 요청 시 마다 unique한 값을 세팅해야 함. //해당 샘플에는 테스트를 위해 {가맹점 서비스ID + 요청일시} 형식으로 세팅하였음.
String Notiurl = kgmPath + "/web/kgm/pay/NotiUrlAjax.do";
/*****************************************************************************************
- 디자인 관련 필수항목
*****************************************************************************************/
String LOGO_YN = "N"; //[ 1byte 고정] 가맹점 로고 사용 여부 (N: 모빌리언스 로고-default, Y: 가맹점 로고 (사전에 모빌리언스에 가맹점 로고 이미지를 등록해야함))
String CALL_TYPE = "P"; //[ 4byte 이하] 결제창 호출 방식 (P: 팝업-default, SELF: 페이지전환, I: 아이프레임)
/*****************************************************************************************
- 선택 입력 항목
*****************************************************************************************/
String MC_AUTHPAY = ""; //[ 1byte 고정] 하이브리드 방식 사용시 "Y" 로 설정 (휴대폰 SMS인증 후 일반 소켓모듈 결제 연동시 사용) (N: 미사용-default, Y: 사용)
String MC_AUTOPAY = ""; //[ 1byte 고정] 자동결제를 위한 최초 일반결제 시 "Y" 세팅. 결제 완료 후 휴대폰정보 대체용 USERKEY 발급 및 자동결제용 AutoBillKey 발급 (N: 미사용-default, Y: 사용)
String MC_PARTPAY = ""; //[ 1byte 고정] 부분취소를 위한 일반결제 시 "Y" 세팅. 결제 완료 후 자동결제 USERKEY 발급 (N: 미사용-default, Y: 사용)
String MC_No = ""; //[ 11byte 이하] 사용자 폰번호 (결제창 호출시 세팅할 폰번호)
String MC_FIXNO = ""; //[ 1byte 고정] 사용자 폰번호 수정불가 여부(N: 수정가능-default, Y: 수정불가)
String MC_DEFAULTCOMMID = ""; //[ 3byte 고정] 통신사 기본 선택 값. SKT, KTF, LGT 3개의 값 중 원하는 통신사 세팅 시 해당 통신사가 미리 선택되어짐.
String MC_FIXCOMMID = ""; //[ 1byte 고정] 통신사 고정 선택 값. SKT, KTF, LGT 3개의 값 중 원하는 통신사 세팅 시 해당 통신사만 결제창에 보여짐.
String Payeremail = ""; //[ 30byte 이하] 결제자 e-mail
String Userid = mjonPayVO.getUserId(); //[ 50byte 이하] 가맹점 결제자ID
String Item = ""; //[ 8byte 이하] 아이템코드. 미사용 시 반드시 공백으로 세팅.
String Prdtcd = ""; //[ 40byte 이하] 상품코드. 자동결제인 경우 상품코드별 SMS문구를 별도 세팅할 때 사용하며 사전에 모빌리언스에 등록이 필요함.
String MC_Cpcode = ""; //[ 20byte 이하] 리셀러하위상점key. 리셀러 업체인 경우에만 세팅.
String Notiemail = ""; //[ 30byte 이하] 알림 e-mail: 결제 완료 후 당사와 가맹점간의 Noti 연동이 실패한 경우 알람 메일을 받을 가맹점 담당자 이메일주소
//String Notiurl = ""; //[ 128byte 이하] 결제 완료 후 가맹점 측 결제 처리를 담당하는 페이지. System back단으로 호출이 되며 사용자에게는 보여지지 않는다.
String Closeurl = ""; //[ 128byte 이하] 결제창 취소버튼, 닫기버튼 클릭 시 호출되는 가맹점 측 페이지. iframe 호출 시 필수! (예: http://www.mcash.co.kr/closeurl.jsp)
String Failurl = ""; //[ 128byte 이하] 결제 실패 시 사용자에게 보여질 가맹점 측 실패 페이지. 결제처리에 대한 실패처리 안내를 가맹점에서 제어해야 할 경우만 사용.
// iframe 호출 시 필수! (예: http://www.mcash.co.kr/failurl.jsp)
String MSTR = ""; //[2000byte 이하] 가맹점 콜백 변수. 가맹점에서 추가적으로 파라미터가 필요한 경우 사용하며 &, % 는 사용불가 (예: MSTR="a=1|b=2|c=3")
String MC_EZ_YN = "Y"; //[ 1byte 고정] 간소화결제여부. 간소화결제 사용시 "Y" 로 설정 (N: 미사용-default, Y: 사용)
String MC_EZ_KEY = ""; //[ 20byte 고정] 간소화결제 사용자키
/*****************************************************************************************
- 오픈마켓의 경우 아래의 정보를 입력해야 합니다.
장바구니 결제의 경우 대표 판매자 외 n명, 대표 판매자 연락처를 입력하세요.
예) Sellernm = "홍길동외 2명";
Sellertel = "0212345678";
*****************************************************************************************/
String Sellernm = ""; //[ 50byte 이하] 실판매자 이름 (오픈마켓의 경우 실 판매자 정보 필수)
String Sellertel = ""; //[ 15byte 이하] 실판매자 전화번호 (오픈마켓의 경우 실 판매자 정보 필수)
/*****************************************************************************************
- 디자인 관련 선택항목 (향후 변경될 수 있습니다.)
*****************************************************************************************/
String IFRAME_NAME = ""; //[ 1byte 고정] 결제창을 iframe으로 호출 할 경우 iframe 명칭 세팅
String INFOAREA_YN = ""; //[ 1byte 고정] 결제창 안내문 표시여부 (Y: 표시-default, N: 미표시)
String FOOTER_YN = ""; //[ 1byte 고정] 결제창 하단 안내 표시여부 (Y: 표시-default, N: 미표시)
String HEIGHT = ""; //[ 4byte 이하] 결제창 높이 (px단위: iframe 등 사용시 결제창 높이 조절, 팝업창 등 호출시 "" 로 세팅)
String PRDT_HIDDEN = ""; //[ 1byte 고정] iframe 사용시 상품명 숨김 여부 (가맹점 디자인 결제창으로 결제 입력 사항만 iframe에서 사용시)
String EMAIL_HIDDEN = ""; //[ 1byte 고정] 결제자 e-mail 입력창 숨김 여부 (N: 표시-default, Y: 미표시)
String CONTRACT_HIDDEN = ""; //[ 1byte 고정] 이용약관 숨김 여부 (Y: 표시-default, N: 미표시)
/*****************************************************************************************
- 암호화 처리 (암호화 사용 시)
Cryptstring 항목은 금액변조에 대한 확인용으로 반드시 아래와 같이 문자열을 생성하여야 합니다.
주) 암호화 스트링은 가맹점에서 전달하는 거래번호로 부터 추출되어 사용되므로
암호화에 이용한 거래번호가 변조되어 전달될 경우 복호화 실패로 결제 진행 불가
*****************************************************************************************/
String Cryptyn = "N"; //Y: 암호화 사용, N: 암호화 미사용
String Cryptstring = ""; //암호화 사용 시 암호화된 스트링
if( Cryptyn.equals("Y") ){
//Cryptstring = Prdtprice + Okurl; //금액변조확인 (결제요청금액 + Okurl)
Okurl = McashCipher.encodeString(Okurl, Tradeid);
Failurl = McashCipher.encodeString(Failurl, Tradeid);
Notiurl = McashCipher.encodeString(Notiurl, Tradeid);
//Prdtprice = McashCipher.encodeString(Prdtprice, Tradeid);
//Cryptstring = McashCipher.encodeString(Cryptstring, Tradeid);
}
%>
<form name="payForm" accept-charset="euc-kr">
<input type="hidden" name="CASH_GB" id="CASH_GB" size="30" value="<%=CASH_GB%>">
<input type="hidden" name="Okurl" id="Okurl" size="50" value="<%=Okurl%>">
<input type="hidden" name="MC_SVCID" id="MC_SVCID" size="30" value="<%=MC_SVCID%>">
<input type="hidden" name="Prdtnm" id="Prdtnm" size="30" value="<%=Prdtnm%>">
<input type="hidden" name="Prdtprice" id="Prdtprice" size="30" value="">
<input type="hidden" name="Siteurl" id="Siteurl" size="30" value="<%=Siteurl%>">
<input type="hidden" name="PAY_MODE" id="PAY_MODE" size="30" value="<%=PAY_MODE%>">
<input type="hidden" name="Tradeid" id="Tradeid" size="40" value="<%=Tradeid%>">
<input type="hidden" name="LOGO_YN" id="LOGO_YN" size="30" value="<%=LOGO_YN%>">
<input type="hidden" name="CALL_TYPE" id="CALL_TYPE" size="30" value="<%=CALL_TYPE%>">
<input type="hidden" name="MC_AUTHPAY" id="MC_AUTHPAY" size="30" value="<%=MC_AUTHPAY%>">
<input type="hidden" name="Notiurl" id="Notiurl" size="50" value="<%=Notiurl%>">
<input type="hidden" name="MC_AUTOPAY" id="MC_AUTOPAY" size="30" value="<%=MC_AUTOPAY%>">
<input type="hidden" name="Closeurl" id="Closeurl" size="50" value="<%=Closeurl%>">
<input type="hidden" name="MC_PARTPAY" id="MC_PARTPAY" size="30" value="<%=MC_PARTPAY%>">
<input type="hidden" name="Failurl" id="Failurl" size="50" value="<%=Failurl%>">
<input type="hidden" name="MC_No" id="MC_No" size="30" value="<%=MC_No%>">
<input type="hidden" name="MC_FIXNO" id="MC_FIXNO" size="30" value="<%=MC_FIXNO%>">
<input type="hidden" name="MC_Cpcode" id="MC_Cpcode" size="30" value="<%=MC_Cpcode%>">
<input type="hidden" name="Userid" id="Userid" size="30" value="<%=Userid%>">
<input type="hidden" name="Item" id="Item" size="30" value="<%=Item%>">
<input type="hidden" name="Prdtcd" id="Prdtcd" size="30" value="<%=Prdtcd%>">
<input type="hidden" name="Payeremail" id="Payeremail" size="30" value="<%=Payeremail%>">
<input type="hidden" name="MC_DEFAULTCOMMID" id="MC_DEFAULTCOMMID" size="30" value="<%=MC_DEFAULTCOMMID%>">
<input type="hidden" name="MC_FIXCOMMID" id="MC_FIXCOMMID" size="30" value="<%=MC_FIXCOMMID%>">
<input type="hidden" name="MSTR" id="MSTR" size="50" value="<%=MSTR%>">
<input type="hidden" name="Sellernm" id="Sellernm" size="30" value="<%=Sellernm%>">
<input type="hidden" name="Sellertel" id="Sellertel" size="30" value="<%=Sellertel%>">
<input type="hidden" name="Notiemail" id="Notiemail" size="30" value="<%=Notiemail%>">
<input type="hidden" name="IFRAME_NAME" id="IFRAME_NAME" size="30" value="<%=IFRAME_NAME%>">
<input type="hidden" name="INFOAREA_YN" id="INFOAREA_YN" size="30" value="<%=INFOAREA_YN%>">
<input type="hidden" name="FOOTER_YN" id="FOOTER_YN" size="30" value="<%=FOOTER_YN%>">
<input type="hidden" name="HEIGHT" id="HEIGHT" size="30" value="<%=HEIGHT%>">
<input type="hidden" name="PRDT_HIDDEN" id="PRDT_HIDDEN" size="30" value="<%=PRDT_HIDDEN%>">
<input type="hidden" name="EMAIL_HIDDEN" id="EMAIL_HIDDEN" size="30" value="<%=EMAIL_HIDDEN%>">
<input type="hidden" name="CONTRACT_HIDDEN" id="CONTRACT_HIDDEN" size="30" value="<%=CONTRACT_HIDDEN%>">
<input type="hidden" name="Cryptyn" id="Cryptyn" size="30" value="<%=Cryptyn%>">
<input type="hidden" name="Cryptstring" id="Cryptstring" size="50" value="<%=Cryptstring%>">
<input type="hidden" name="MC_EZ_YN" id="MC_EZ_YN" size="30" value="<%=MC_EZ_YN%>">
<input type="hidden" name="MC_EZ_KEY" id="MC_EZ_KEY" size="20" value="<%=MC_EZ_KEY%>">
<input type="hidden" name="MC_PUSH_KEY" id="MC_PUSH_KEY" size="50" value="">
</form>