정수빈 정수빈 08-31
Merge branch 'master' of http://subsub8729@vcs.iten.co.kr/2025_PROJECT/mjgo_git
http://subsub8729@vcs.iten.co.kr/2025_PROJECT/mjgo_git

Conflicts:
	src/main/webapp/publish/css/style.css
@5eeb4871e8e9f8af49d13982de26684140aae591
pom.xml
--- pom.xml
+++ pom.xml
@@ -585,7 +585,7 @@
 		  
         <defaultGoal>install</defaultGoal>
         <directory>${basedir}/target</directory>
-		<finalName>ROOT</finalName>
+		<finalName>mjgo</finalName>
         <pluginManagement>
             <plugins>
                 <plugin>
 
src/main/java/itn/let/mjo/pay/service/MjonPayTossService.java (deleted)
--- src/main/java/itn/let/mjo/pay/service/MjonPayTossService.java
@@ -1,31 +0,0 @@
-package itn.let.mjo.pay.service;
-
-import itn.com.cmm.LoginVO;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-public interface MjonPayTossService {
-	Map<String, Object> processTossConfirm(String paymentKey, String orderId, String amount, LoginVO loginVO) throws Exception;
-
-	/**
-	 * 토스페이먼츠 가상계좌 입금 콜백(웹훅) 처리.
-	 * 입금이 완료(DONE)된 주문에 대해 mj_pg 상태를 결제완료로 바꾸고 캐시/포인트를 적립한다.
-	 * @param orderId 상점 주문번호 (MOID)
-	 * @return 처리결과(credited: 실제 적립 여부, message)
-	 */
-	Map<String, Object> processTossVbankDeposit(String orderId) throws Exception;
-
-//	public int selectBLineMberCnt(String mberId) throws Exception;
-//
-//	public int insertPrePayInfo(MjonPrePayVO mjonPrePayVO) throws Exception;
-//
-//	public List<MjonPrePayVO> selectPrePayList(MjonPrePayVO mjonPrePayVO) throws Exception;
-//
-//	public int deletePrePayInfo(MjonPrePayVO mjonPrePayVO) throws Exception;
-//
-//	public MjonPrePayVO selectPrePayInfo(MjonPrePayVO mjonPrePayVO) throws Exception;
-//
-//	public int updatePrePayModify(MjonPrePayVO mjonPrePayVO) throws Exception;
-}
src/main/java/itn/let/mjo/pay/service/MjonPayVO.java
--- src/main/java/itn/let/mjo/pay/service/MjonPayVO.java
+++ src/main/java/itn/let/mjo/pay/service/MjonPayVO.java
@@ -246,6 +246,6 @@
 	private String managerNm;			// 담당자명
 	private String prePaymentYn;		// 선불결제여부 N:후불제고객
 	private String dept;				// 회원종류 p:개인 c:기업
-
-
+	
+	
 }
src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java
--- src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java
+++ src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java
@@ -201,11 +201,6 @@
 		return update("mjonPayDAO.updateMjonPgStatus", refundVO);
 	}
 
-	// 토스 가상계좌 입금완료 처리: PG_STATUS 0(입금대기) → 1(결제완료). 멱등 처리를 위해 0인 건만 갱신.
-	public int updateTossVbankDeposit(MjonPayVO mjonPayVO) throws Exception {
-		return update("mjonPayDAO.updateTossVbankDeposit", mjonPayVO);
-	}
-
 	@SuppressWarnings("unchecked")
 	public List<MjonPayVO> selectPayDayChart(MjonPayVO mjonPayVO) throws Exception{
 		return (List<MjonPayVO>)list("mjonPayDAO.selectPayDayChart", mjonPayVO);
 
src/main/java/itn/let/mjo/pay/service/impl/MjonPayTossServiceImpl.java (deleted)
--- src/main/java/itn/let/mjo/pay/service/impl/MjonPayTossServiceImpl.java
@@ -1,398 +0,0 @@
-package itn.let.mjo.pay.service.impl;
-
-import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
-import egovframework.rte.fdl.idgnr.EgovIdGnrService;
-import itn.com.cmm.LoginVO;
-import itn.let.mjo.pay.service.MjonPayService;
-import itn.let.mjo.pay.service.MjonPayTossService;
-
-import javax.annotation.Resource;
-import java.io.*;
-import java.util.Map;
-
-import itn.let.mjo.msgdata.service.MjonMsgDataService;
-import itn.let.mjo.pay.service.MjonPayVO;
-import itn.let.sym.site.service.JoinSettingVO;
-import itn.let.uat.uia.service.impl.MberManageDAO;
-import itn.let.uss.umt.service.MberManageVO;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Base64;
-import java.util.HashMap;
-
-import org.json.JSONObject;
-
-@Service("mjonPayTossService")
-public class MjonPayTossServiceImpl extends EgovAbstractServiceImpl implements MjonPayTossService {
-
-	@Resource(name="mjonPrePayDAO")
-	private MjonPrePayDAO mjonPrePayDAO;
-
-	@Resource(name="mjonPayDAO")
-	private MjonPayDAO mjonPayDAO;
-
-	/** 캐시/회원잔액 적립 공용 서비스 (insertCash → mj_cash + LETTNGNRLMBER.USER_MONEY) */
-	@Resource(name="mjonPayService")
-	private MjonPayService mjonPayService;
-
-	/** 포인트 ID 생성기 */
-	@Resource(name="egovMjonPointIdGnrService")
-	private EgovIdGnrService idgenMjonPointId;
-
-	/** 가입설정(포인트 적립비율) 조회 */
-	@Resource(name="MjonMsgDataService")
-	private MjonMsgDataService mjonMsgDataService;
-
-	/** mberManageDAO */
-	@Resource(name="mberManageDAO")
-	private MberManageDAO mberManageDAO;
-
-	/** 토스 시크릿 키 (globals_*.properties, 콜론 없이 키 본문만 저장 → 인증 시 코드에서 ':' 부착) */
-	@Value("#{globalSettings['Globals.pay.toss.secretKey']}")
-	private String tossSecretKey;
-
-	/** 토스 Basic 인증 헤더값 = Base64(secretKey + ":") */
-	private String tossBasicAuth() {
-		return Base64.getEncoder().encodeToString((tossSecretKey + ":").getBytes(StandardCharsets.UTF_8));
-	}
-
-	/**
-	 * 토스페이먼츠 결제 승인 및 내역 저장
-	 * @param paymentKey 토스 결제 고유 키
-	 * @param orderId 상점 주문번호 (MOID)
-	 * @param amount 결제 금액
-	 * @param loginVO 로그인 사용자 정보
-	 * @return 처리 결과 Map
-	 */
-	@Override
-	public Map<String, Object> processTossConfirm(String paymentKey, String orderId, String amount, LoginVO loginVO) throws Exception {
-
-		// 1. 토스 승인 API 호출 설정
-		String encodedKey = tossBasicAuth();
-
-		URL url = new URL("https://api.tosspayments.com/v1/payments/confirm");
-		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-		connection.setRequestMethod("POST");
-		connection.setRequestProperty("Authorization", "Basic " + encodedKey);
-		connection.setRequestProperty("Content-Type", "application/json");
-		connection.setDoOutput(true);
-
-		// API 요청 바디 생성 (JSON 형식)
-		String jsonBody = String.format("{\"paymentKey\":\"%s\",\"orderId\":\"%s\",\"amount\":%s}",
-				paymentKey, orderId, amount);
-
-		try (OutputStream os = connection.getOutputStream()) {
-			os.write(jsonBody.getBytes(StandardCharsets.UTF_8));
-		}
-
-		// 2. 응답 수신 처리
-		int responseCode = connection.getResponseCode();
-		InputStream responseStream = (responseCode == 200) ? connection.getInputStream() : connection.getErrorStream();
-
-		StringBuilder resBuilder = new StringBuilder();
-		try (BufferedReader reader = new BufferedReader(new InputStreamReader(responseStream, StandardCharsets.UTF_8))) {
-			String line;
-			while ((line = reader.readLine()) != null) {
-				resBuilder.append(line);
-			}
-		}
-
-		if (responseCode != 200) {
-			throw new Exception("토스 결제 승인 실패: " + resBuilder.toString());
-		}
-
-		// 3. 응답 데이터 파싱 및 mj_pg 테이블 매핑
-		JSONObject resObj = new JSONObject(resBuilder.toString());
-		String method = resObj.getString("method"); // 결제수단 (카드, 가상계좌 등)
-
-		// 회원 정보 상세 조회 (연락처 등 매핑용)
-		MberManageVO mberManageVO = mberManageDAO.selectMber(loginVO.getId());
-
-		// 기존 쿼리의 parameterClass인 VO 객체 생성 및 값 세팅
-		MjonPayVO payVO = new MjonPayVO();
-
-		// [공통 정보 세팅]
-		payVO.setMoid(orderId);                             // #moid# (idgen으로 생성된 PK)
-		payVO.setPgCode("TOSS");                            // #pgCode#
-		payVO.setTid(resObj.getString("paymentKey"));       // #tid#
-		payVO.setAmt(String.valueOf(resObj.getLong("totalAmount"))); // #amt#
-		payVO.setGoodsName(resObj.getString("orderName"));  // #goodsName#
-		payVO.setMid(resObj.optString("mId"));              // #mid# (상점ID 추가)
-
-		// 고객 정보 매핑 (연락처/이메일 누락 방지)
-		payVO.setUserId(loginVO.getId());                   // #userId#
-		payVO.setEmail(mberManageVO.getMberEmailAdres());   // #email#
-		payVO.setPhone(mberManageVO.getMoblphonNo());       // #phone#
-		payVO.setMobile(mberManageVO.getMoblphonNo());      // #mobile#
-		payVO.setBuyerName(loginVO.getName());              // #buyerName#
-
-		payVO.setResultCode("0000");                        // #resultCode#
-		payVO.setResultMsg("정상처리 되었습니다.");               // #resultMsg#
-		payVO.setAfterPayYn("N");                           // #afterPayYn# (선불 고정)
-
-		// CASH(공급가액) 계산: 부가세 제외 금액 (기존 시스템과 동일 산식: 결제금액/11*10)
-		// 토스 응답의 suppliedAmount와 1원 단위로 어긋나 세금계산서/정산 금액과 불일치하는 것을 방지하기 위해
-		// 기존 setCashVatNotIncluded() 와 동일한 산식으로 통일한다.
-		long totalAmt = resObj.getLong("totalAmount");
-		long cashAmount = Math.round(totalAmt / 11.0 * 10);
-		payVO.setCash(Double.parseDouble(String.valueOf(cashAmount))); // #cash#
-
-		// 4. 결제 수단별 상세 분기 처리
-		if ("가상계좌".equals(method)) {
-			JSONObject vAccount = resObj.getJSONObject("virtualAccount");
-			String bankCode = vAccount.getString("bankCode");
-
-			payVO.setPayMethod("VBANK");          // #payMethod#
-			payVO.setPgStatus("0");               // #pgStatus# (0: 입금 대기)
-			payVO.setVbankNum(vAccount.getString("accountNumber")); // #vbankNum#
-			payVO.setVbankCode(vAccount.getString("bankCode"));     // #vbankCode#
-
-			// --- 은행 코드 -> 한글명 변환 ---
-			String bankName = "";
-			switch (bankCode) {
-				case "20": bankName = "우리은행"; break;
-				case "88": bankName = "신한은행"; break;
-				case "11": bankName = "농협"; break;
-				case "04": bankName = "국민은행"; break;
-				case "03": bankName = "기업은행"; break;
-				case "81": bankName = "하나은행"; break;
-				case "07": bankName = "수협"; break;
-				case "31": bankName = "대구은행"; break;
-				case "32": bankName = "부산은행"; break;
-				case "34": bankName = "광주은행"; break;
-				case "37": bankName = "전북은행"; break;
-				case "39": bankName = "경남은행"; break;
-				case "71": bankName = "우체국"; break;
-				case "23": bankName = "SC제일"; break;
-				case "45": bankName = "새마을금고"; break;
-				case "48": bankName = "신협"; break;
-				case "02": bankName = "산업은행"; break;
-				case "90": bankName = "카카오뱅크"; break;
-				case "92": bankName = "토스뱅크"; break;
-				case "89": bankName = "케이뱅크"; break;
-				default: bankName = "기타은행(" + bankCode + ")"; break;
-			}
-			payVO.setVbankName(bankName);
-
-			// 입금 기한 가공 (YYYYMMDD 형식)
-			String dueDate = vAccount.getString("dueDate").substring(0, 10).replace("-", "");
-			payVO.setVbankExpDate(dueDate);      // #vbankExpDate#
-
-		} else if ("카드".equals(method)) {
-			JSONObject card = resObj.getJSONObject("card");
-			payVO.setPayMethod("CARD");           // #payMethod#
-			payVO.setPgStatus("1");               // #pgStatus# (1: 결제 완료)String issuerCode = card.getString("issuerCode");
-			String issuerCode = card.getString("issuerCode");
-			payVO.setCardCode(issuerCode);        // #cardCode#
-
-
-			// --- 카드사 코드 -> 한글명 변환 시작 ---
-			String cardName = "";
-			switch (issuerCode) {
-				case "36": cardName = "씨티"; break;
-				case "31": cardName = "삼성"; break;
-				case "61": cardName = "현대"; break;
-				case "11": cardName = "농협"; break;
-				case "91": cardName = "카카오뱅크"; break;
-				case "26": cardName = "비씨"; break;
-				case "21": cardName = "하나"; break;
-				case "41": cardName = "신한"; break;
-				case "51": cardName = "롯데"; break;
-				case "15": cardName = "우리"; break;
-				case "01": cardName = "외환"; break;
-				case "12": cardName = "수협"; break;
-				case "46": cardName = "광주"; break;
-				case "33": cardName = "전북"; break;
-				case "62": cardName = "제주"; break;
-				case "35": cardName = "KDB산업"; break;
-				default: cardName = "기타카드(" + issuerCode + ")"; break;
-			}
-			payVO.setCardName(cardName); // #cardName#에 한글명 세팅
-
-		} else if ("간편결제".equals(method)) {
-			JSONObject easyPay = resObj.getJSONObject("easyPay");
-			String provider = easyPay.getString("provider");
-
-			payVO.setPayMethod("SPAY");           // #payMethod#
-			payVO.setPgStatus("1");
-			payVO.setSpayMethod("M");             // #spayMethod#
-			payVO.setCardName(provider);          // #cardName#
-
-			// 기존 SPAY_DIV 코드 매핑 + 토스페이(TOS) 추가
-			if ("카카오페이".equals(provider)) {
-				payVO.setSpayDiv("KKO");
-			} else if ("네이버페이".equals(provider)) {
-				payVO.setSpayDiv("NAV");
-			} else if ("토스페이".equals(provider)) {
-				payVO.setSpayDiv("TOS"); // 요청하신 토스페이 코드 추가
-			}
-		}
-
-		// 5. DB INSERT 실행
-		mjonPayDAO.insertMjPg(payVO);
-
-		// 5-1. 캐시/포인트 적립
-		//   - 카드/간편결제: 즉시 결제완료(pgStatus=1)이므로 바로 적립
-		//   - 가상계좌(VBANK): 아직 입금 전(pgStatus=0)이므로 적립하지 않음.
-		//     실제 입금이 완료되면 토스 입금 콜백(processTossVbankDeposit)에서 적립한다.
-		if (!"VBANK".equals(payVO.getPayMethod())) {
-			creditCashAndPoint(payVO, loginVO.getId());
-		}
-
-		// 컨트롤러 응답용 결과 Map 구성
-		Map<String, Object> result = new HashMap<>();
-		result.put("PG_STATUS", payVO.getPgStatus());
-		result.put("MOID", payVO.getMoid());
-		result.put("VBANK_NUM", payVO.getVbankNum());
-		result.put("VBANK_NAME", payVO.getVbankName());
-		result.put("VBANK_EXP_DATE", payVO.getVbankExpDate());
-		result.put("AMT", payVO.getAmt());
-
-		return result;
-	}
-
-	/**
-	 * 토스페이먼츠 가상계좌 입금 콜백(웹훅) 처리.
-	 * 입금 완료(DONE)된 주문에 대해서만 mj_pg 상태를 결제완료로 바꾸고 캐시/포인트를 적립한다.
-	 * 중복 콜백/재시도에 대비해 멱등(idempotent)하게 동작한다.
-	 */
-	@Override
-	public Map<String, Object> processTossVbankDeposit(String orderId) throws Exception {
-
-		Map<String, Object> result = new HashMap<>();
-		result.put("credited", false);
-
-		if (orderId == null || orderId.isEmpty()) {
-			result.put("message", "orderId 없음");
-			return result;
-		}
-
-		// 1. 우리 DB의 결제내역 조회 (없으면 우리쪽 주문이 아님)
-		MjonPayVO dbPay = mjonPayDAO.selectPayInfoByMoid(orderId);
-		if (dbPay == null) {
-			result.put("message", "존재하지 않는 주문번호: " + orderId);
-			return result;
-		}
-		// 이미 처리(결제완료)된 주문이면 중복 콜백 → 무시
-		if ("1".equals(dbPay.getPgStatus())) {
-			result.put("message", "이미 처리된 주문: " + orderId);
-			return result;
-		}
-
-		// 2. 토스 결제조회 API로 실제 상태 재확인 (위변조 방지: 콜백 본문만 신뢰하지 않음)
-		JSONObject payInfo = callTossPaymentByOrderId(orderId);
-		String status = payInfo.optString("status");
-		if (!"DONE".equals(status)) {
-			// 입금 전(WAITING_FOR_DEPOSIT)이거나 취소/만료 등 → 적립하지 않음
-			result.put("message", "입금완료 상태 아님: " + status);
-			return result;
-		}
-
-		// 3. mj_pg 상태를 결제완료(1)로 변경 — PG_STATUS='0' 조건으로 멱등 처리
-		MjonPayVO updVO = new MjonPayVO();
-		updVO.setMoid(orderId);
-		int updated = mjonPayDAO.updateTossVbankDeposit(updVO);
-		if (updated == 0) {
-			// 동시 콜백 등으로 이미 다른 요청이 처리함 → 중복 적립 방지
-			result.put("message", "상태 변경 대상 없음(이미 처리됨): " + orderId);
-			return result;
-		}
-
-		// 4. 캐시/포인트 적립
-		long totalAmt = payInfo.getLong("totalAmount");
-		dbPay.setAmt(String.valueOf(totalAmt));
-		dbPay.setPayMethod("VBANK");
-		creditCashAndPoint(dbPay, dbPay.getUserId());
-
-		result.put("credited", true);
-		result.put("message", "입금 적립 완료: " + orderId);
-		return result;
-	}
-
-	/**
-	 * 캐시/포인트 적립 공통 처리.
-	 * - 캐시: 공급가액(결제금액/11*10)을 mj_cash 에 적립하고 회원 잔액(USER_MONEY) 갱신
-	 * - 포인트: 문자 미할인 회원만 가입설정 비율만큼 mj_point 에 적립하고 회원 포인트 갱신
-	 *
-	 * 주의: 첫결제 이벤트 회원에 대한 포인트 0원 처리/이벤트 회원정보 갱신 등의 특수 로직은
-	 *       포함하지 않는다. (해당 처리가 필요하면 MjonPayServiceImpl 의 일반 결제 흐름 참고)
-	 *
-	 * @param payVO  amt(결제금액, 부가세포함)/moid/payMethod 가 세팅된 VO
-	 * @param userId 적립 대상 회원 ID
-	 */
-	private void creditCashAndPoint(MjonPayVO payVO, String userId) throws Exception {
-
-		// 공급가액 = 결제금액 / 11 * 10 (부가세 제외)
-		long supply = Math.round(Double.parseDouble(payVO.getAmt()) / 11.0 * 10);
-		String methodKo = payMethodKo(payVO.getPayMethod());
-
-		// --- 캐시 적립 (mj_cash + 회원 잔액 갱신) ---
-		payVO.setUserId(userId);
-		payVO.setFrstRegisterId(userId);
-		payVO.setCash(supply);
-		payVO.setOrderId(payVO.getMoid());           // 주문번호
-		payVO.setMsgGroupId(null);                   // 충전이므로 발송그룹 없음
-		payVO.setMemo(methodKo + " " + supply + " 충전");
-		// insertCash() 내부에서 cashId 생성 + insertCash + updateMemberCash 수행
-		mjonPayService.insertCash(payVO);
-
-		// --- 포인트 적립 (문자 발송단가 미할인 회원만) ---
-		int isMsgSalePrice = mjonPayDAO.selectMsgSalePriceCnt(userId);
-		if (isMsgSalePrice == 0) {
-			JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo();
-			float pointPer = (sysJoinSetVO != null) ? sysJoinSetVO.getPointPer() : 0;
-			int point = Math.round(supply * pointPer / 100f);
-
-			payVO.setPointId(idgenMjonPointId.getNextStringId());
-			payVO.setPoint(point);
-			payVO.setPointMemo(methodKo + " " + point + " 충전");
-			mjonPayDAO.insertPoint(payVO);        // mj_point
-			mjonPayDAO.updateMemberPoint(payVO);  // 회원 포인트 갱신
-		}
-	}
-
-	/** 토스 결제수단 코드 → 캐시/포인트 메모용 한글명 */
-	private String payMethodKo(String payMethod) {
-		if ("CARD".equals(payMethod))      return "신용카드";
-		if ("SPAY".equals(payMethod))      return "간편결제";
-		if ("VBANK".equals(payMethod))     return "가상계좌";
-		if ("BANK".equals(payMethod))      return "계좌이체";
-		if ("CELLPHONE".equals(payMethod)) return "휴대폰";
-		return "";
-	}
-
-	/**
-	 * 토스 결제조회 API (주문번호 기준) 호출.
-	 * GET https://api.tosspayments.com/v1/payments/orders/{orderId}
-	 */
-	private JSONObject callTossPaymentByOrderId(String orderId) throws Exception {
-		String encodedKey = tossBasicAuth();
-
-		URL url = new URL("https://api.tosspayments.com/v1/payments/orders/" + orderId);
-		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-		connection.setRequestMethod("GET");
-		connection.setRequestProperty("Authorization", "Basic " + encodedKey);
-
-		int responseCode = connection.getResponseCode();
-		InputStream responseStream = (responseCode == 200) ? connection.getInputStream() : connection.getErrorStream();
-
-		StringBuilder resBuilder = new StringBuilder();
-		try (BufferedReader reader = new BufferedReader(new InputStreamReader(responseStream, StandardCharsets.UTF_8))) {
-			String line;
-			while ((line = reader.readLine()) != null) {
-				resBuilder.append(line);
-			}
-		}
-
-		if (responseCode != 200) {
-			throw new Exception("토스 결제조회 실패(" + orderId + "): " + resBuilder.toString());
-		}
-		return new JSONObject(resBuilder.toString());
-	}
-}
 
src/main/java/itn/let/mjo/pay/web/MjonPayTossController.java (deleted)
--- src/main/java/itn/let/mjo/pay/web/MjonPayTossController.java
@@ -1,193 +0,0 @@
-package itn.let.mjo.pay.web;
-
-import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
-import itn.com.cmm.LoginVO;
-import itn.let.mjo.mjocommon.MjonCommon;
-import itn.let.mjo.msgcampain.service.MjonCandidateService;
-import itn.let.mjo.pay.service.MjonPayService;
-import itn.let.mjo.pay.service.MjonPayTossService;
-import itn.let.mjo.payva.service.VacsVactService;
-import itn.let.sym.grd.service.MberGrdService;
-import itn.let.sym.site.service.EgovSiteManagerService;
-import itn.let.uss.umt.service.EgovMberManageService;
-import itn.let.uss.umt.service.EgovUserManageService;
-import itn.let.utl.user.service.MjonNoticeSendUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.BufferedReader;
-import java.util.Map;
-
-import org.json.JSONObject;
-
-@Controller
-public class MjonPayTossController {
-	private static final Logger LOGGER = LoggerFactory.getLogger(MjonPayController.class);
-	
-	@Resource(name = "mjonPayService")
-    private MjonPayService mjonPayService;
-	
-	@Resource(name = "mberManageService")
-	private EgovMberManageService mberManageService;
-	
-	@Resource(name = "mjonCandidateService")
-    private MjonCandidateService mjonCandidateService;
-	
-	//전용계좌 서비스
-	@Resource(name = "vacsVactService")
-	private VacsVactService vacsVactService;
-	
-    /** userManageService */
-	@Resource(name = "userManageService")
-	private EgovUserManageService userManageService;
-	
-	/** 사이트 설정 */ 
-	@Resource(name = "egovSiteManagerService")
-	EgovSiteManagerService egovSiteManagerService;	
-
-	/** 알림전송 Util */
-	@Resource(name = "mjonNoticeSendUtil")
-	private MjonNoticeSendUtil mjonNoticeSendUtil;    
-
-	@Resource(name="MjonCommon")
-	private MjonCommon mjonCommon;
-	
-	@Resource(name = "mberGrdService")
-	MberGrdService mberGrdService;
-	@Resource(name = "mjonPayTossService")
-    MjonPayTossService mjonPayTossService;
-	
-	/** KG 모빌리언스 설정 */
-	// CARD
-	@Value("#{globalSettings['Globals.pay.kgm.card.cnSvcid']}")
-	private String globalCnSvcid;
-	@Value("#{globalSettings['Globals.pay.kgm.card.payMode']}")
-	private String globalCnPayMode;
-
-	// BANK
-	@Value("#{globalSettings['Globals.pay.kgm.bank.raSvcid']}")
-	private String globalRaSvcid;
-	@Value("#{globalSettings['Globals.pay.kgm.bank.payMode']}")
-	private String globalRaPayMode;
-	
-	// MOBILE
-	@Value("#{globalSettings['Globals.pay.kgm.mobile.mcSvcid']}")
-	private String globalMcSvcid;
-	@Value("#{globalSettings['Globals.pay.kgm.mobile.payMode']}")
-	private String globalMcPayMode;	
-
-	@RequestMapping(value = "/web/member/pay/tossSuccess.do")
-	public String tossSuccess(HttpServletRequest request
-			, RedirectAttributes redirectAttributes) throws Exception {
-
-		LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser() : null;
-		if(loginVO == null) return "redirect:/web/user/login/login.do";
-
-		// 파라미터 수신
-		String paymentKey = request.getParameter("paymentKey");
-		String orderId = request.getParameter("orderId");
-		String amount = request.getParameter("amount");
-
-		try {
-			// 비즈니스 로직 호출
-			Map<String, Object> result = mjonPayTossService.processTossConfirm(paymentKey, orderId, amount, loginVO);
-
-			// 가상계좌일 경우 화면에 띄울 데이터 전달
-			if ("0".equals(result.get("PG_STATUS"))) {
-				redirectAttributes.addFlashAttribute("vbankInfo", result);
-				redirectAttributes.addFlashAttribute("isVbankIssued", "Y");
-				return "redirect:/web/member/pay/PayView.do"; // 결제뷰로 이동
-			}
-
-			return "redirect:/web/member/pay/PayList.do"; // 일반 결제는 리스트로 이동
-
-		} catch (Exception e) {
-			redirectAttributes.addFlashAttribute("message", e.getMessage());
-			return "redirect:/web/member/pay/tossFail.do";
-		}
-	}
-
-
-	@RequestMapping(value = "/web/member/pay/tossFail.do")
-	public String tossFail(HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
-
-		String code = request.getParameter("code");
-		String message = request.getParameter("message");
-
-		// 로그 기록
-		LOGGER.error("결제 실패 원인: [{}] {}", code, message);
-
-		// 다시 결제 화면으로 보낼 때 실패 메시지를 전달
-		// FlashAttribute는 리다이렉트 후 한 번만 유지되는 데이터입니다.
-		redirectAttributes.addFlashAttribute("payErrorMsg", message);
-		redirectAttributes.addFlashAttribute("payErrorCode", code);
-
-		return "redirect:/web/member/pay/PayView.do";
-	}
-
-	/**
-	 * 토스페이먼츠 가상계좌 입금 콜백(웹훅).
-	 * 토스 서버 → 우리 서버로 호출되는 server-to-server 요청이므로 로그인 세션이 없다.
-	 * (context-security.xml 에서 /web/toss/webhook/** 는 security="none" 으로 허용)
-	 *
-	 * 콜백 본문(JSON)에서 orderId/status 만 추출한 뒤, 실제 입금완료 여부는
-	 * 서비스에서 토스 결제조회 API로 재확인한 후 캐시/포인트를 적립한다.
-	 * 토스는 2xx 응답을 받지 못하면 재시도하므로, 처리 성공 시 항상 "OK"(200)를 반환한다.
-	 */
-	@RequestMapping(value = "/web/toss/webhook/deposit.do")
-	@ResponseBody
-	public String tossDepositWebhook(HttpServletRequest request, javax.servlet.http.HttpServletResponse response) {
-
-		try {
-			// 1. 요청 본문(JSON) 읽기
-			StringBuilder sb = new StringBuilder();
-			try (BufferedReader reader = request.getReader()) {
-				String line;
-				while ((line = reader.readLine()) != null) {
-					sb.append(line);
-				}
-			}
-			String raw = sb.toString();
-			LOGGER.info("토스 입금 콜백 수신: {}", raw);
-
-			if (raw.isEmpty()) {
-				return "OK";
-			}
-
-			// 2. orderId / status 추출 (DEPOSIT_CALLBACK 평면 구조 / PAYMENT_STATUS_CHANGED data 구조 모두 대응)
-			JSONObject body = new JSONObject(raw);
-			String orderId;
-			String status;
-			if (body.has("data")) {
-				JSONObject data = body.getJSONObject("data");
-				orderId = data.optString("orderId");
-				status = data.optString("status");
-			} else {
-				orderId = body.optString("orderId");
-				status = body.optString("status");
-			}
-
-			// 3. 입금완료(DONE) 콜백만 적립 처리 (그 외 상태는 무시하되 200 응답)
-			if ("DONE".equals(status)) {
-				Map<String, Object> result = mjonPayTossService.processTossVbankDeposit(orderId);
-				LOGGER.info("토스 입금 콜백 처리결과: {}", result);
-			}
-
-		} catch (Exception e) {
-			// 처리 중 오류(네트워크/DB 등)는 500을 반환해 토스의 재시도를 유도한다.
-			// processTossVbankDeposit 은 멱등하므로 재시도되어도 중복 적립되지 않는다.
-			LOGGER.error("토스 입금 콜백 처리 오류", e);
-			response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-			return "FAIL";
-		}
-
-		return "OK";
-	}
-}
src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
@@ -1,26 +1,22 @@
 package itn.let.mjo.pay.web;
 
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import org.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -1881,6 +1877,5 @@
 		
 		return rtnVal;
    	}
-
-
+   	
 }
src/main/resources/egovframework/egovProps/globals_dev.properties
--- src/main/resources/egovframework/egovProps/globals_dev.properties
+++ src/main/resources/egovframework/egovProps/globals_dev.properties
@@ -115,11 +115,6 @@
 Globals.pay.kgm.mobile.mcSvcid=170622040674
 Globals.pay.kgm.mobile.payMode=00
 
-#토스페이먼츠 설정 (시크릿키는 콜론 없이 키 본문만 저장) - 라이브(위젯) 키
-Globals.pay.toss.secretKey=live_gsk_DnyRpQWGrNbko96YwQk7rKwv1M9E
-#토스 클라이언트키(공개키) - 프론트 위젯 초기화용 - 라이브(위젯) 키
-Globals.pay.toss.clientKey=live_gck_QbgMGZzorz59DZpopZElVl5E1em4
-
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
 Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0
src/main/resources/egovframework/egovProps/globals_local.properties
--- src/main/resources/egovframework/egovProps/globals_local.properties
+++ src/main/resources/egovframework/egovProps/globals_local.properties
@@ -30,10 +30,10 @@
 Globals.DriverClassName=com.mysql.jdbc.Driver
 #Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc
 #Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc?characterEncoding=UTF-8&useUnicode=true&serverTimezone=Asia/Seoul
-Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
+Globals.Url=jdbc:mysql://192.168.0.60:3309/mjgo?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
 
-Globals.UserName= mjonUr
-Globals.Password= mjon!@#$
+Globals.UserName= mjgoUr
+Globals.Password= itntest123
 #Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon
 
 #Globals.DriverClassName=com.mysql.jdbc.Driver
@@ -122,11 +122,6 @@
 #MOBILE
 Globals.pay.kgm.mobile.mcSvcid=170622040674
 Globals.pay.kgm.mobile.payMode=00
-
-#토스페이먼츠 설정 (시크릿키는 콜론 없이 키 본문만 저장) - 라이브(위젯) 키
-Globals.pay.toss.secretKey=live_gsk_DnyRpQWGrNbko96YwQk7rKwv1M9E
-#토스 클라이언트키(공개키) - 프론트 위젯 초기화용 - 라이브(위젯) 키
-Globals.pay.toss.clientKey=live_gck_QbgMGZzorz59DZpopZElVl5E1em4
 
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
src/main/resources/egovframework/egovProps/globals_prod.properties
--- src/main/resources/egovframework/egovProps/globals_prod.properties
+++ src/main/resources/egovframework/egovProps/globals_prod.properties
@@ -27,7 +27,7 @@
 
 # mysql
 Globals.DriverClassName=com.mysql.jdbc.Driver
-Globals.Url=jdbc:mysql://10.12.107.14:3306/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
+Globals.Url=jdbc:mysql://1.201.116.6:3306/mjon_advc?useUnicode=true&connectionCollation=utf8mb4_unicode_ci&serverTimezone=Asia/Seoul
 Globals.UserName= mjonUr
 Globals.Password= mjon!@#$
 
@@ -102,11 +102,6 @@
 #MOBILE
 Globals.pay.kgm.mobile.mcSvcid=220613125202
 Globals.pay.kgm.mobile.payMode=10
-
-#토스페이먼츠 설정 (시크릿키는 콜론 없이 키 본문만 저장) - 라이브(위젯) 키
-Globals.pay.toss.secretKey=live_gsk_DnyRpQWGrNbko96YwQk7rKwv1M9E
-#토스 클라이언트키(공개키) - 프론트 위젯 초기화용 - 라이브(위젯) 키
-Globals.pay.toss.clientKey=live_gck_QbgMGZzorz59DZpopZElVl5E1em4
 
 #Slack
 Globals.slack.hooks.url=https://hooks.slack.com/services/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
src/main/resources/egovframework/spring/com/context-security.xml
--- src/main/resources/egovframework/spring/com/context-security.xml
+++ src/main/resources/egovframework/spring/com/context-security.xml
@@ -11,8 +11,6 @@
     <security:http pattern="/images/**" security="none"/>
  	<security:http pattern="/js/**" security="none"/>
  	<security:http pattern="/resource/**" security="none"/>
- 	<!-- 토스페이먼츠 가상계좌 입금 콜백(웹훅) - 토스 서버에서 호출하는 server-to-server 요청이라 인증 제외 -->
- 	<security:http pattern="/web/toss/webhook/**" security="none"/>
  	<security:http pattern="\A/WEB-INF/jsp/.*\Z" request-matcher="regex" security="none"/>
  	
     <egov-security:config id="securityConfig"
src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
@@ -1456,19 +1456,9 @@
 			, CANCEL_TIME = DATE(NOW())
 		</isEqual>
 		WHERE  MOID      = #moid#
-
+	
 	</update>
-
-	<!-- 토스 가상계좌 입금완료 처리 (PG_STATUS 0:입금대기 → 1:결제완료). 멱등 처리를 위해 0인 건만 갱신 -->
-	<update id="mjonPayDAO.updateTossVbankDeposit" parameterClass="mjonPayVO">
-		UPDATE MJ_PG
-		SET    PG_STATUS   = '1',
-		       RESULT_CODE = '0000',
-		       RESULT_MSG  = '입금이 정상 처리되었습니다.'
-		WHERE  MOID      = #moid#
-		AND    PG_STATUS = '0'
-	</update>
-
+	
 	<select id="mjonPayDAO.selectPayDayChartDashboard" parameterClass="mjonPayVO" resultClass="mjonPayVO">
 	
 		SELECT 
src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
@@ -6,9 +6,6 @@
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
 <%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
 
-<%-- 토스 클라이언트키(공개키)는 환경별 globals_*.properties 에서 주입 --%>
-<spring:eval expression="@globalSettings['Globals.pay.toss.clientKey']" var="tossClientKey"/>
-
 <style>
 	/*.charg_cont .area_tab li{ width: calc((100% - 80px)/5);}*/
 </style>
@@ -16,180 +13,485 @@
 <!-- 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 src="https://js.tosspayments.com/v1/payment-widget"></script>
 
 <script>
+//탭이동
+var tabType = "${tabType}";
 
-	let paymentWidget;
-	let paymentMethodWidget;
+$(document).ready(function(){
+	//다음 결제시 결제수단 SELECT
+	getNextPayMethod();
 
-	$(document).ready(function(){
-
-		// 서버에서 보낸 payErrorMsg가 있는지 확인
-		var errorMsg = "${payErrorMsg}";
-
-		if (errorMsg && errorMsg !== "") {
-			// 사용자에게 익숙한 alert 띄우기
-			alert("결제에 실패하였습니다.\n사유: " + errorMsg);
-		}
-
-		// 토스페이먼츠 위젯 초기화 세팅 (clientKey는 서버 globals_*.properties 에서 주입)
-		const clientKey = '${tossClientKey}';
-		const customerKey = 'test_customer_1234'; // 테스트용 가상 고객 ID (실제 연동 시에는 로그인한 유저의 고유 ID를 넣으세요)
-		paymentWidget = PaymentWidget(clientKey, customerKey);
-
-		// 초기 충전금액(입력값 기준, 공급가액)
-		var initSupply = parseInt(($("#price").val() || '0').replace(/[^0-9]/g, ''), 10) || 0;
-		var initAmount = initSupply + Math.round(initSupply * 0.1);
-
-		// 결제수단 및 약관 위젯 화면에 렌더링
-		paymentMethodWidget = paymentWidget.renderPaymentMethods('#payment-method', { value: initAmount });
-		paymentWidget.renderAgreement('#agreement');
-
-		// 선택한 결제수단 → 아래 신용카드 타이틀 텍스트 동기화
-		try {
-			if (paymentMethodWidget && typeof paymentMethodWidget.on === 'function') {
-				// 위젯 렌더 완료 후 초기 반영 + 선택 변경 감지(폴링: v1은 select 이벤트 미보장)
-				paymentMethodWidget.on('ready', function () {
-					updatePayMethodTitle();
-					setInterval(updatePayMethodTitle, 100);
-				});
-				// select 이벤트가 지원되면 즉시 반영
-				paymentMethodWidget.on('paymentMethodSelect', updatePayMethodTitle);
-			}
-		} catch (e) { /* 이벤트 미지원 환경 무시 */ }
-
-		// 초기 금액 표시 갱신
-		updatePrice(initSupply);
-
-		// 금액 추가 버튼 클릭
-		$('.add_money .btn').on('click', function () {
-			var addAmount = Number($(this).data('price'));
-			var currentValue = $("#price").val().replace(/[^0-9]/g, '');
-			currentValue = currentValue ? Number(currentValue) : 0;
-			var total = currentValue + addAmount;
-			$("#price").val(numberWithCommas(total));
-			updatePrice(total);
-		});
-
-		// 직접 입력
-		$("#price").on('input', function () {
-			var value = $(this).val().replace(/[^0-9]/g, '');
-			value = value ? Number(value) : 0;
-			$(this).val(numberWithCommas(value));
-			updatePrice(value);
-		});
-	});
-
-	// 금액 업데이트 (price = 공급가액)
-	function updatePrice(price) {
-		var $message = $('.input_message');
-
-		var supplyPrice = price;
-		var vatPrice = Math.round(supplyPrice * 0.1);
-		var lastPrice = supplyPrice + vatPrice;
-
-		// 화면 표시
-		$('#supplyPriceStr').text(numberWithCommas(supplyPrice));
-		$('#vatPriceStr').text(numberWithCommas(vatPrice));
-		$('#lastPriceStr').text(numberWithCommas(lastPrice));
-
-		// 토스 결제 금액 변경
-		if (typeof paymentMethodWidget !== 'undefined') {
-			paymentMethodWidget.updateAmount(lastPrice);
-		}
-
-		// 충전금액 제한 체크
-		if (price > 150000 || price < 5000) {
-			$(".money_input").addClass('error');
-			$message.addClass('active');
-			if (price < 5001) {
-				$message.find(".msg").text("최소 충전금액 5천원 이상 입력해주세요.");
-			} else {
-				$message.find(".msg").text("휴대폰 결제는 최대 150,000원까지 입력 가능합니다.");
-			}
-		} else {
-			$(".money_input").removeClass('error');
-			$message.removeClass('active');
-		}
+	// 충전금액 세팅
+	setPriceMake();
+	
+	setNumberOnly();//숫자만입력
+	
+	// 전용계좌 화면으로 이동
+	if (tabType == "2") {
+		$("#btnDdedicatedAccount").trigger("click");
 	}
 
-	// 선택된 결제수단명을 신용카드 타이틀에 반영
-	function updatePayMethodTitle() {
-		try {
-			var sel = paymentMethodWidget.getSelectedPaymentMethod();
-			if (!sel || !sel.method) return;
+	// 등급제 대상 여부
+	//getMberGrdChk();	
+});
 
-			var method = sel.method; // 카드 / 가상계좌 / 계좌이체 / 휴대폰 / 간편결제 ...
-			var label = (method === '카드') ? '신용·체크카드' : method;
-
-			var $t = $('#payMethodTitle');
-			if ($t.length && $t.text() !== label) {
-				$t.text(label);
-			}
-		} catch (e) { /* 위젯 준비 전 호출 무시 */ }
-	}
-
-	// 후불제여부 체크
-	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;
+//다음 결제시 결제수단 SELECT
+function getNextPayMethod() {
+	var nextPayMethod = "";
+	$.ajax({
+	    type: "POST",
+	    url: "/web/member/pay/selectLastPayMethodAjax.do",
+	    data: {},
+	    dataType:'json',
+	    async: false,
+	    success: function (data) {
+			if (data.isSuccess) { 
+				if (data.nextPayMethod != '') {
+					nextPayMethod = data.nextPayMethod;
+					
+					// 버튼 영역
+					$(".btn_tab").removeClass("active");
+					// 금액 영역
+					$(".area_tabcont").removeClass("on");
+					
+					if (nextPayMethod == "CARD") {
+						$(".btn_charge1").addClass("active");
+						$("#tab2_1").addClass("area_tabcont on");
 					}
+					else if (nextPayMethod == "VBANK") {
+						$(".btn_charge2").addClass("active");
+						$("#tab2_2").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "CELLPHONE") {
+						$(".btn_charge3").addClass("active");
+						$("#tab2_3").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "BANK") {
+						$(".btn_charge4").addClass("active");
+						$("#tab2_4").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "NAV") {
+						$(".btn_charge5").addClass("active");
+						$("#tab2_5").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "KKO") {
+						$(".btn_charge6").addClass("active");
+						$("#tab2_6").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "TOS") {
+						$(".btn_charge7").addClass("active");
+						$("#tab2_7").addClass("area_tabcont on");
+					}	
+					else if (nextPayMethod == "PYC") {
+						$(".btn_charge8").addClass("active");
+						$("#tab2_8").addClass("area_tabcont on");
+					}		
+					
+					// 체크박스
+					$("input:checkbox[id='agree']").prop("checked", true); 
 				}
-			},
-			error: function (e) {
+			} 
+		},
+	    error: function (e) {
+	    	
+	    }
+	});		
+}
 
-			}
-		});
-
-		return isAfterPay;
+// 다음 결제시 결제수단 UPDATE
+function setNextPayMethod() {
+	var nextPayMethod = "";
+	if ($("input:checkbox[id='agree']").is(":checked") == true) {
+		var $currentTab = $('.area_tab').children('.active').index();
+		if ($currentTab == 0) {	
+			nextPayMethod = "CARD";
+		} else if ($currentTab == 1) {	
+			nextPayMethod = "VBANK";		
+		} else if ($currentTab==2) {	
+			nextPayMethod = "CELLPHONE";		
+		} else if ($currentTab==3) {	
+			nextPayMethod = "BANK";		
+		} else {	
+			if ($currentTab == 4) {
+				nextPayMethod = "NAV";	// 네이버페이
+			} else if ($currentTab==5) {
+				nextPayMethod = "KKO";	// 카카오페이
+			} else if ($currentTab==6) {
+				nextPayMethod = "TOS";	// 토스페이
+			} else if ($currentTab==7) {
+				nextPayMethod = "PYC";	// 페이코
+			}	
+		}	
 	}
-
-	function pgOpenerPopup(){
-		// 후불제여부 체크 (기존 로직 유지)
-		if (getMjUserAfterPayCheck() == true) {
-			alert("후불제 고객은 해당 서비스를 이용할수 없습니다.");
-			return false;
-		}
-
-		// 충전금액(공급가액) 추출
-		var chargePrice = parseInt(($("#price").val() || '0').replace(/[^0-9]/g, ''), 10);
-		if (isNaN(chargePrice) || chargePrice < 5000) {
-			alert("최소 충전금액 5천원 이상 입력해주세요.");
-			return false;
-		}
-
-		// 최종 결제금액(부가세 포함)
-		var lastPrice = chargePrice + Math.round(chargePrice * 0.1);
-
-		// 토스페이먼츠 결제창 바로 호출
-		paymentWidget.requestPayment({
-			orderId: 'ORDER_' + new Date().getTime(), // 고유한 상점 주문번호 생성
-			orderName: '문자온 충전 ' + lastPrice + '원',
-			successUrl: window.location.origin + '/web/member/pay/tossSuccess.do', // 결제 성공 시 이동할 URL
-			failUrl: window.location.origin + '/web/member/pay/tossFail.do',       // 결제 실패 시 이동할 URL
-			customerEmail: $('#mberEmailAdres').val(), // 로그인한 사용자의 이메일 매핑
-			customerName: $('#mberNm').val(),   // 로그인한 사용자의 이름 매핑
-			customerMobilePhone: $('#moblphonNo').val()
-		}).catch(function (error) {
-			if (error.code === 'USER_CANCEL') {
-				alert('결제를 취소하셨습니다.');
-			} else {
-				alert(error.message);
-			}
-		});
+	else {
+		nextPayMethod = "";		
 	}
+	
+	// 업데이트		
+	$.ajax({
+	    type: "POST",
+	    url: "/web/member/pay/updateNextPayMethodAjax.do",
+	    data: {"nextPayMethod" : nextPayMethod},
+	    dataType:'json',
+	    async: false,
+	    success: function (data) {
+			if (data.isSuccess) { 
 
+			} 
+		},
+	    error: function (e) {
+	    	
+	    }
+	});					
+}
+
+
+//결제수단 상태 체크
+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;
+	}
+	else if(lastPrice < 5500){
+		//충전금액
+		alert("최소 충전금액 5천원 이상 선택해주세요.");
+		return false;		
+	}
+	
+	// 다음 결제시 결제수단 UPDATE
+	setNextPayMethod();	
+
+	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 = "CELLPHONE";		
+	} else if ($currentTab==3) {	
+		payMethod = "BANK";		
+	} else {	
+		payMethod = "SPAY";
+	}		
+	$('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 == 0) {	
+		// 나이스페이 => CARD(카드결제)
+		pg_opener = window.open('', 'pg_opener', "width=545, height=830, left="+popupX+", top="+popupY, "location = no","status= no","toolbars= no");		
+	
+		document.pgForm.method = "post";
+		document.pgForm.target = "pg_opener" ;
+		document.pgForm.submit();
+	} else if ($currentTab == 1) {
+		// 전용계좌
+	} else if ($currentTab == 2) {
+		// KG 모빌리언스 => MOBILE(휴대폰결제)
+		kgmPayMobileRequest();		
+	} else if ($currentTab==3) {
+		// KG 모빌리언스 => BANK(즉시이체)
+		kgmPayBankRequest();		
+	} else {
+		var cnDirect = "";
+		var mstr = "";
+		if ($currentTab == 4) {
+			cnDirect = "NAV:00:N";	// 네이버페이
+			mstr = "NAV";
+		} else if ($currentTab==5) {
+			cnDirect = "KKO:00:N";	// 카카오페이
+			mstr = "KKO";
+		} else if ($currentTab==6) {
+			cnDirect = "TOS:00:N";	// 토스페이
+			mstr = "TOS";
+		} else if ($currentTab==7) {
+			cnDirect = "PYC:00:N";	// 페이코
+			mstr = "PYC";
+		}	
+		
+		// KG 모빌리언스 => SPAY(간편결제)
+		kgmPayCardRequest(cnDirect, mstr);		
+	} 	
+}
+
+//KG 모빌리언스 => CARD
+function kgmPayCardRequest(cnDirect, mstr) {
+	$.ajax({
+        type: "POST",
+        url: "/web/member/pay/kgmCardEncodeAjax.do",
+        data: {"Prdtprice": $("#price").val()},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) { 
+				var form = document.payCardForm;
+				form.CASH_GB.value = data.CASH_GB;
+				form.CN_SVCID.value = data.CN_SVCID;
+				form.PAY_MODE.value = data.PAY_MODE;
+				form.VER.value = data.VER;
+				form.Prdtprice.value = data.Prdtprice;
+				form.Prdtnm.value = data.Prdtnm;
+				form.Tradeid.value = data.Tradeid;
+				form.Siteurl.value = data.Siteurl;
+				form.Okurl.value = data.Okurl;
+				form.Notiurl.value = data.Notiurl;
+				form.CALL_TYPE.value = data.CALL_TYPE;
+				form.Failurl.value = data.Failurl;
+				form.Userid.value = data.Userid;
+				form.Username.value = data.Username;
+				form.MSTR.value = mstr;
+				form.Payeremail.value = data.Payeremail;
+				form.Cryptyn.value = data.Cryptyn;
+				form.Cryptstring.value = data.Cryptstring;
+				form.Closeurl.value = data.Closeurl;
+				form.CN_BILLTYPE.value = data.CN_BILLTYPE;
+				form.CN_TAX.value = data.CN_TAX;
+				form.CN_TAXFREE.value = data.CN_TAXFREE;
+				form.CN_FREEINTEREST.value = data.CN_FREEINTEREST;
+				form.CN_POINT.value = data.CN_POINT;
+				form.Termregno.value = data.Termregno;
+				form.APP_SCHEME.value = data.APP_SCHEME;
+				form.CN_FIXCARDCD.value = data.CN_FIXCARDCD;
+				form.CN_DIRECT.value = cnDirect;
+				form.CN_INSTALL.value = data.CN_INSTALL;
+				form.Deposit.value = data.Deposit;
+				
+				//아래와 같이 ext_inc_comm.js에 선언되어 있는 함수를 호출
+				MCASH_PAYMENT(form);
+			} 
+			else {
+				alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });		
+}
+
+//KG 모빌리언스 => MOBILE
+function kgmPayMobileRequest() {
+	$.ajax({
+        type: "POST",
+        url: "/web/member/pay/kgmMobileEncodeAjax.do",
+        data: {"Prdtprice": $("#price").val()},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) { 
+				var form = document.payMobileForm;
+				form.CASH_GB.value = data.CASH_GB;
+				form.Okurl.value = data.Okurl;
+				form.MC_SVCID.value = data.MC_SVCID;
+				form.Prdtnm.value = data.Prdtnm;
+				form.Prdtprice.value = data.Prdtprice;
+				form.Siteurl.value = data.Siteurl;
+				form.PAY_MODE.value = data.PAY_MODE;
+				form.Tradeid.value = data.Tradeid;
+				form.LOGO_YN.value = data.LOGO_YN;
+				form.CALL_TYPE.value = data.CALL_TYPE;
+				form.MC_AUTHPAY.value = data.MC_AUTHPAY;
+				form.Notiurl.value = data.Notiurl;
+				form.MC_AUTOPAY.value = data.MC_AUTOPAY;
+				form.Closeurl.value = data.Closeurl;
+				form.MC_PARTPAY.value = data.MC_PARTPAY;
+				form.Failurl.value = data.Failurl;
+				form.MC_No.value = data.MC_No;
+				form.MC_FIXNO.value = data.MC_FIXNO;
+				form.MC_Cpcode.value = data.MC_Cpcode;
+				form.Userid.value = data.Userid;
+				form.Item.value = data.Item;
+				form.Prdtcd.value = data.Prdtcd;
+				form.Payeremail.value = data.Payeremail;
+				form.MC_DEFAULTCOMMID.value = data.MC_DEFAULTCOMMID;
+				form.MC_FIXCOMMID.value = data.MC_FIXCOMMID;
+				form.MSTR.value = data.MSTR;
+				form.Sellernm.value = data.Sellernm;
+				form.Sellertel.value = data.Sellertel;
+				form.Notiemail.value = data.Notiemail;
+				form.IFRAME_NAME.value = data.IFRAME_NAME;
+				form.INFOAREA_YN.value = data.INFOAREA_YN;
+				form.FOOTER_YN.value = data.FOOTER_YN;
+				form.HEIGHT.value = data.HEIGHT;
+				form.PRDT_HIDDEN.value = data.PRDT_HIDDEN;
+				form.EMAIL_HIDDEN.value = data.EMAIL_HIDDEN;
+				form.CONTRACT_HIDDEN.value = data.CONTRACT_HIDDEN;
+				form.Cryptyn.value = data.Cryptyn;
+				form.Cryptstring.value = data.Cryptstring;
+				form.MC_EZ_YN.value = data.MC_EZ_YN;
+				form.MC_EZ_KEY.value = data.MC_EZ_KEY;
+				form.MC_PUSH_KEY.value = data.MC_PUSH_KEY;
+				
+				//아래와 같이 ext_inc_comm.js에 선언되어 있는 함수를 호출
+				MCASH_PAYMENT(form);
+			} 
+			else {
+				alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });		
+}
+
+//KG 모빌리언스 => BANK
+function kgmPayBankRequest() {
+	$.ajax({
+        type: "POST",
+        url: "/web/member/pay/kgmBankEncodeAjax.do",
+        data: {"Prdtprice": $("#price").val()},
+        dataType:'json',
+        async: false,
+        success: function (data) {
+			if (data.isSuccess) { 
+				var form = document.payBankForm;
+				form.CASH_GB.value = data.CASH_GB;
+				form.Okurl.value = data.Okurl;
+				form.RA_SVCID.value = data.RA_SVCID;
+				form.Prdtnm.value = data.Prdtnm;
+				form.Prdtprice.value = data.Prdtprice;
+				form.Siteurl.value = data.Siteurl;
+				form.PAY_MODE.value = data.PAY_MODE;
+				form.Tradeid.value = data.Tradeid;
+				form.LOGO_YN.value = data.LOGO_YN;
+				form.CALL_TYPE.value = data.CALL_TYPE;
+				form.Notiurl.value = data.Notiurl;
+				form.Closeurl.value = data.Closeurl;
+				form.Failurl.value = data.Failurl;
+				form.Userid.value = data.Userid;
+				form.Item.value = data.Item;
+				form.Prdtcd.value = data.Prdtcd;
+				form.Payeremail.value = data.Payeremail;
+				form.MSTR.value = data.MSTR;
+				form.Notiemail.value = data.Notiemail;
+				form.IFRAME_NAME.value = data.IFRAME_NAME;
+				form.INFOAREA_YN.value = data.INFOAREA_YN;
+				form.FOOTER_YN.value = data.FOOTER_YN;
+				form.HEIGHT.value = data.HEIGHT;
+				form.PRDT_HIDDEN.value = data.PRDT_HIDDEN;
+				form.EMAIL_HIDDEN.value = data.EMAIL_HIDDEN;
+				form.CONTRACT_HIDDEN.value = data.CONTRACT_HIDDEN;
+				form.Cryptyn.value = data.Cryptyn;
+				form.Cryptstring.value = data.Cryptstring;
+				form.Deposit.value = data.Deposit;
+				form.Billyn.value = "N";
+				
+				//아래와 같이 ext_inc_comm.js에 선언되어 있는 함수를 호출
+				MCASH_PAYMENT(form);
+			} 
+			else {
+				alert("Msg : " + data.msg);
+			}
+		},
+        error: function (e) { 
+        	alert("ERROR : " + JSON.stringify(e)); 
+        }
+    });		
+}
 
 /* 윈도우팝업 열기 */
 function infoPop(pageUrl){
@@ -200,6 +502,280 @@
 	document.infoPopForm.target = "infoPop";
 	document.infoPopForm.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;
+		
+	}
+	
+	// 다음 결제시 결제수단 UPDATE
+	setNextPayMethod();	
+	
+	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;
+	}
+}
+
+
+//충전금액 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)); 
+        }
+    });				
+}		
 
 
 /* 사용내역서 클릭 시 내역서 새창 팝업 오픈  */
@@ -227,13 +803,11 @@
 	<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">
+	<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}'/>" />
-	<input type="hidden" id="mberEmailAdres" value="<c:out value='${mberManageVO.mberEmailAdres}'/>" />
-	<input type="hidden" id="moblphonNo" value="<c:out value='${mberManageVO.moblphonNo}'/>" />
-	<input type="hidden" id="mberNm" value="<c:out value='${mberManageVO.mberNm}'/>" />
      <!-- content 영역 -->
         <div class="inner">
             <!-- send top -->
@@ -260,15 +834,338 @@
 						<p>- 모든 요금은 VAT별도 금액입니다.</p>
 					</div>--%>
 					<div>
-						<!-- 토스페이먼츠 결제수단 위젯 영역 -->
-						<div id="payment-method" class="toss_wrap"></div>
-
-						<!-- 토스페이먼츠 이용약관 영역 -->
-						<div id="agreement" class="toss_wrap"></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_charge3 btn_tab"><button type="button" onclick="TabTypePay(this,'3');"><i></i>휴대폰결제</button></li>
+							<li class="btn_charge4 btn_tab"><button type="button" onclick="TabTypePay(this,'4');"><i></i>즉시이체</button></li>
+							
+							<li class="btn_charge5 btn_tab simple_pay"><button type="button" onclick="TabTypePay(this,'5');"><i></i></button></li>
+							<li class="btn_charge6 btn_tab simple_pay"><button type="button" onclick="TabTypePay(this,'6');"><i></i></button></li>
+							<li class="btn_charge7 btn_tab simple_pay"><button type="button" onclick="TabTypePay(this,'7');"><i></i></button></li>
+							<li class="btn_charge8 btn_tab simple_pay"><button type="button" onclick="TabTypePay(this,'8');"><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/credit_small.png" alt="신용카드"> <span id="payMethodTitle">신용·체크카드</span></p>
+							<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">- 신용카드 결제가 어려우신 고객께서는 문자온 고객센터(1551-8011)를 통해서도 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 account_con">
+								<caption></caption>
+								<colgroup>
+									<col style="width: 100%">
+									<col style="width: auto;">
+								</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 account_te">
+														<button type="button" onClick="javascript:fnShowVaViewPrintPopup(); return false;">전용계좌 확인서</button>
+													</td>
+												</tr>
+											</c:forEach>								
+										</c:when>
+										<c:otherwise>
+											<tr>
+												<td colspan="2">
+													<div>
+														보유한 전용 계좌가 없습니다.
+													</div>
+													<!-- <button type="button">가상계좌 확인서</button> -->
+												</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>- 계좌번호 문자로 받기(유료) 
+                                                    <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_3">
+							<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_4">
+							<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>- KG모빌리언스 결제를 이용하여 인터넷뱅킹처럼 로그인 없이 간단한 정보 입력만으로 실시간 계좌 이체</p>
+												<p>&nbsp; (일반결제, 간편결제, 앱결제)를 할 수 있는 간편한 결제 수단입니다.(소득공제 및 지출증빙 가능)</p>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						<!-- //즉시이체 -->
+
+						<!-- 네이버페이 -->
+						<div class="area_tabcont" id="tab2_5">
+							<p class="tType1_title"><img src="/publish/images/simple_small.png" alt="간편결제"> 네이버페이</p>
 							<table class="tType1">
 								<colgroup>
 									<col style="width: 100px;">
@@ -278,23 +1175,30 @@
 									<tr class="charge_content">
 										<th scope="row">충전금액</th>
 										<td class="flex">
-											<div class="money_form_wrap form_wrap">
-												<input type="text" name="price" id="price" class="input money_input" placeholder="5,000원 이상 입력해주세요." value="50,000" />
-												<p class="input_in">원</p>
-												<p class="input_message error">
-													<i class="icon error">!</i> <span class="msg">휴대폰 결제는 최대 150,000원까지 입력 가능합니다.</span>
-												</p>
-											</div>
+											<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>
 
-											<div class="btn_wrap add_money w100per">
-												<button type="button" class="btn" data-price="10000">+ 1만원</button>
-												<button type="button" class="btn" data-price="50000">+ 5만원</button>
-												<button type="button" class="btn" data-price="100000">+ 10만원</button>
-												<button type="button" class="btn" data-price="1000000">+ 100만원</button>
-											</div>
+											<p class="input_in">원</p>
+											<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
 										</td>
 									</tr>
-
 									<tr>
 										<td colspan="2">
 											<div class="amount_wrap">
@@ -302,19 +1206,228 @@
 													<dt>최종 결제금액 :</dt>
 													<dd>
 														<ul>
-															<li><strong id="supplyPriceStr">50,000</strong>원(공급가액)</li>
-															<li><span class="plus"></span><strong id="vatPriceStr">5,000</strong>원(부가세)</li>
-															<li class="total"><span class="equal"></span><strong class="c_e40000" id="lastPriceStr">55,000</strong>원(최종금액)</li>
+															<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="btn btnType fill primary btn_pay" onclick="pgOpenerPopup(); return false;">충전하기</button>
+												<button type="button" class="btnType" onclick="pgOpenerPopup(); return false;">충전하기</button>
+											</div>
+										</td>
+									</tr>
+									<tr>
+										<td colspan="2">
+											<div class="area_text">
+												<p>- 인터넷 익스플로러 이용 고객께서는 도구-팝업 차단 해제 후 충전이 가능합니다.</p>
+												<p>- 결제사별 정책상 충전금액 제한이 있을 수 있습니다.</p>
+												<p>- 간편결제 시 세금계산서 및 간이영수증은 제공되지 않습니다.</p>
+												<p>- 네이버페이 카드 결제 영수증은 네이버페이를 통해서 발급받으실 수 있습니다.</p>
+												<p>- 네이버페이 포인트 사용에 따른 현금영수증 발행은 문자고 캐시 결제과정에서 결제자가 직접 선택하여야만 요청할 수 있습니다.(결제 완료 이후 문자고에서 현금영수증 처리 불가)</p>
 											</div>
 										</td>
 									</tr>
 								</tbody>
 							</table>
 						</div>
+						<!-- //네이버페이 -->
+
+						<!-- 카카오페이 -->
+						<div class="area_tabcont current" id="tab2_6">
+							<!-- 신규계좌발급 시 -->
+							<p class="tType1_title"><img src="/publish/images/simple_small.png" alt="간편결제"> 카카오페이</p>
+							<table class="tType1">
+								<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>
+
+											<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>- 결제사별 정책상 충전금액 제한이 있을 수 있습니다.</p>
+												<p>- 간편결제 시 세금계산서 및 간이영수증은 제공되지 않습니다.</p>
+												<p>- 카카오페이 결제에 따른 카드영수증 및 현금영수증은 카카오페이 앱을 통해서만 확인 가능합니다.</p>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						<!-- //카카오페이 -->
+
+						<!-- 토스페이 -->
+						<div class="area_tabcont current" id="tab2_7">
+							<p class="tType1_title"><img src="/publish/images/simple_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>
+
+											<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>- 결제사별 정책상 충전금액 제한이 있을 수 있습니다.</p>
+												<p>- 간편결제 시 세금계산서 및 간이영수증은 제공되지 않습니다.</p>
+												<p>- 토스페이 결제에 따른 카드영수증 및 현금영수증은 토스페이 앱을 통해서만 확인 가능합니다.</p>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						<!-- //토스페이 -->
+
+						<!-- 페이코 -->
+						<div class="area_tabcont current" id="tab2_8">
+							<p class="tType1_title"><img src="/publish/images/simple_small.png" alt="간편결제"> PAYCO</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>
+
+											<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>- 결제사별 정책상 충전금액 제한이 있을 수 있습니다.</p>
+												<p>- 페이코(PAYCO) 결제 영수증은 페이코를 통해 발급받으실 수 있습니다.</p>
+											</div>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+						<!-- //페이코 -->
+						
 					</div>
 
 					<!--누적결제액별 등급 및 단가 추가 시작-->
src/main/webapp/publish/css/button.css
--- src/main/webapp/publish/css/button.css
+++ src/main/webapp/publish/css/button.css
@@ -7,13 +7,6 @@
 .form_wrap.center,.form_wrap .center{justify-content:center;}
 .form_wrap.right,.form_wrap .right{justify-content:flex-end;}
 
-.form_wrap .input_message{display:flex;font-size:16px;font-weight:400;color:#222;align-items:center;gap:8px;opacity:0;transition:opacity .3s ease;}
-.form_wrap .input_message.active{opacity:1;}
-.form_wrap .input_message.error{color:var(--red-color);}
-
-.form_wrap .input_message .icon{display:inline-block;width:16px;height:16px;font-family:'GmarketSansBold';font-size:12px;line-height:18px;font-weight:bold;text-align:center;border-radius:100%;background:#222;}
-.form_wrap .input_message.error .icon{background:var(--red-color);color:#fff;}
-
 
 /* 버튼 레이아웃 */
 .btn_wrap{display:flex;justify-content:space-between;gap:8px;}
src/main/webapp/publish/css/content.css
--- src/main/webapp/publish/css/content.css
+++ src/main/webapp/publish/css/content.css
@@ -893,7 +893,6 @@
 .photoBox .txtBox span {font-size: 18px; font-weight: 300; color: #666; padding-top: 10px;display: inline-block;display:none;}
 
 /* 결제내역 */
-
 /* 요금결제내역 */
 .pay_cont .list_info div:last-child button{font-size:14px;}
 .pay_cont .tType1 .calendar_wrap {margin-right: 3px;}
@@ -1084,10 +1083,6 @@
 .charg_cont {background-color: #fff;padding: 40px;border-radius: 10px; min-height: 589px; display: none;}
 .charg_cont.current {display: block;}
 .charg_cont .tab_tit{font-size: 24px; font-weight: bold; color: #222; margin-bottom: 20px; margin-top: 40px;}
-
-/* 토스 */
-.toss_wrap{width:calc(100% + 60px);margin:0 0 0 -30px;}
-
 /* 간편결제 오픈 시 */
 .charg_cont .area_tab{display:flex;gap:25px 30px;flex-wrap:wrap;}
 .charg_cont .area_tab li{position:relative;position:relative;width:calc((100% /4) - 23px);border:1px solid #d5d5d5;border-radius:5px;box-sizing:border-box;}
@@ -1140,9 +1135,9 @@
 .charg_cont .area_tabcont.on{display: block;}
 .charg_cont .area_tabcont .area_tit{font-size: 20px; font-weight: bold; color: #222; margin-left: 5px;}
 .charg_cont .tType1{margin-bottom: 50px;}
-.charg_cont .tType1 select, .charg_cont .tType1 button:not(.btn_pay), .charg_cont .tType1 input{height: 40px; border-radius: 5px; display: inline-block;line-height:40px;}
+.charg_cont .tType1 select, .charg_cont .tType1 button, .charg_cont .tType1 input{height: 40px; border-radius: 5px; display: inline-block;line-height:40px;}
 .charg_cont .tType1 select{width: 220px; padding: 0 20px 0 15px; border: 1px solid #ccc; margin-left: 8px; font-size: 16px; color: #222; font-weight: 300; background-image: url(/publish/images/select_search.png); background-repeat: no-repeat; background-position: 92% center;}
-.area_tabcont .tType1 button:not(.btn_pay) {background-color: var(--primary-color); padding: 0 20px; color: #fff; font-weight: normal; letter-spacing: -0.5px; font-size: 17px;}
+.area_tabcont .tType1 button {background-color: var(--primary-color); padding: 0 20px; color: #fff; font-weight: normal; letter-spacing: -0.5px; font-size: 17px;}
 .charg_cont .tType1 input{border: 1px solid #ccc; margin-right: 5px; vertical-align: middle; margin-left: 8px;}
 /* .charg_cont .tType1 input:nth-child(2) {margin-left: 0;} */
 .charg_cont .tType1 .area_text{ font-size: 16px; font-weight: 300; color: #555;}
@@ -1156,35 +1151,27 @@
 .charg_cont .tType1 .checkbox_wrap input[type="radio"]+label{width: 24px;height: 24px; border-radius: 50%;display: inline-block; vertical-align: middle; margin-bottom: 3px; position: relative; cursor: pointer; vertical-align: middle; margin-right: 5px; margin-top: -2px;padding:0;}
 .charg_cont .tType1 .account_holder {display:inline-block;margin:0 0 0 -15px;font-size:16px;}
 .charg_cont .tType1 .flex{display: flex; align-items: center;}
-.charg_cont .tType1 .flex input{height: 40px; border: none; margin:0;}
+.charg_cont .tType1 .flex input{height: 40px; border: none;}
 .charg_cont .tType1 p.input_in{margin:0 0 0 5px;line-height: 1; font-size: 18px; display: inline-block; vertical-align: middle;}
-.charg_cont .tType1 .flex button{border: 1px solid #d5d5d5; color: #333; font-size: 16px; background-color: #fff; padding: 0 20px;}
+.charg_cont .tType1 .flex button{border: 1px solid #b1b1b1; color: #222; font-size: 17px; background-color: #fff; padding: 0 13px; margin-right: 5px;}
+.charg_cont .tType1 tbody tr.charge_content {border-bottom:0 none;}
 .charg_cont .tType1 tbody tr.charge_content .list_seType1 {width:180px;font-size:18px;border-color:#f2f2f2;background-color:#f2f2f2;cursor:pointer;}
-
-.charg_cont .charge_content{border-bottom:1px solid #e5e5e5;}
-.charg_cont .charge_content .flex{flex-wrap:wrap;gap:8px;}
-.charg_cont .money_form_wrap{display:flex;width:100%;justify-content:flex-start;align-items:center;gap:8px;}
-.charg_cont .money_form_wrap .money_input.error{border:1px solid var(--red-color);}
-
-.amount_wrap {display:flex;margin:-5px 0 20px;padding:12px 30px 12px 35px;line-height:56px;justify-content:space-between;border:3px solid #ddd;border-radius:5px;}
-.amount_wrap dl {display:flex;letter-spacing:-0.025em;}
-.amount_wrap dl dt {font-size:20px;font-weight:500;white-space:nowrap;}
-.amount_wrap dl dd ul {display:flex;}
-.amount_wrap dl dd ul li {position:relative;padding:0 30px;font-size:17px;font-weight:300;white-space:nowrap;color:#555;}
-.amount_wrap dl dd ul li:first-child {padding-left:25px;}
-.amount_wrap dl dd ul li strong {font-size:22px;font-weight:700;color:#000;margin:0 2px 0 0;}
-.amount_wrap dl dd ul li .plus {position:absolute;left:-14px;top:50%;width:27px;height:27px;background:#f5f5f5;border-radius:28px;transform:translateY(-50%);}
-.amount_wrap dl dd ul li .plus:before {content:'';position:absolute;left:12px;top:6px;width:3px;height:15px;background:#8f8f8f;}
-.amount_wrap dl dd ul li .plus:after {content:'';position:absolute;left:6px;top:12px;width:15px;height:3px;background:#8f8f8f;}
-.amount_wrap dl dd ul li .equal {position:absolute;left:-14px;top:50%;width:27px;height:27px;background:#f5f5f5;border-radius:28px;transform:translateY(-50%);}
-.amount_wrap dl dd ul li .equal:before {content:'';position:absolute;left:6px;top:9px;width:15px;height:3px;background:#8f8f8f;}
-.amount_wrap dl dd ul li .equal:after {content:'';position:absolute;left:6px;top:15px;width:15px;height:3px;background:#8f8f8f;}
-.amount_wrap dl dd ul li.total {padding-right:0;font-size:20px;color:#222;}
-.amount_wrap dl dd ul li.total strong {color:#f43131;}
-.amount_wrap .btnType {width:210px;height:56px;font-size:20px;font-weight:600;}
-
-.charg_cont .amount_wrap{border:0;margin:0;padding:0 15px;}
-
+.charg_cont .tType1 tbody tr td .amount_wrap {display:flex;margin:-5px 0 20px;padding:12px 30px 12px 35px;line-height:56px;justify-content:space-between;border:3px solid #ddd;border-radius:5px;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl {display:flex;letter-spacing:-0.025em;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dt {font-size:20px;font-weight:500;white-space:nowrap;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul {display:flex;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li {position:relative;padding:0 30px;font-size:16px;font-weight:300;white-space:nowrap;color:#555;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li:first-child {padding-left:25px;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li strong {font-size:22px;font-weight:700;color:#222;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .plus {position:absolute;left:-14px;top:50%;width:27px;height:27px;background:#f5f5f5;border-radius:28px;transform:translateY(-50%);}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .plus:before {content:'';position:absolute;left:12px;top:6px;width:3px;height:15px;background:#8f8f8f;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .plus:after {content:'';position:absolute;left:6px;top:12px;width:15px;height:3px;background:#8f8f8f;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .equal {position:absolute;left:-14px;top:50%;width:27px;height:27px;background:#f5f5f5;border-radius:28px;transform:translateY(-50%);}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .equal:before {content:'';position:absolute;left:6px;top:9px;width:15px;height:3px;background:#8f8f8f;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li .equal:after {content:'';position:absolute;left:6px;top:15px;width:15px;height:3px;background:#8f8f8f;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li.total {padding-right:0;font-size:20px;color:#222;}
+.charg_cont .tType1 tbody tr td .amount_wrap dl dd ul li.total strong {color:#f43131;}
+.charg_cont .tType1 tbody tr td .amount_wrap .btnType {width:210px;height:56px;font-size:20px;}
 
 .info_bank{display: flex; width: 100%; flex-wrap: wrap; justify-content: space-between;}
 .info_bank li{width: calc((100% - 33px) / 3); display: flex; margin-bottom: 11px; height: 62px; align-items: center; justify-content: center; box-shadow: 0 0 8px rgba(0, 0, 0, 0.2); border-radius: 5px;} 
src/main/webapp/publish/css/style.css
--- src/main/webapp/publish/css/style.css
+++ src/main/webapp/publish/css/style.css
@@ -19,9 +19,6 @@
   --green-color:#15983A;
   --green-color-hover:#0E9A1F;
   
-  --blue-color:#176EE5;
-  --blue-color-hover:#1956B4;
-  
   --gray-color:#888888;
   --gray-color-hover:#666666;
   --lightgray-color:#999999;
@@ -44,10 +41,6 @@
 .fwMd{font-weight:500!important;}
 .fwBold{font-weight:700!important;}
 
-.fs_18{font-size:18px;font-weight:bold;}
-.fs_16{font-size:16px;font-weight:bold;}
-.fs_14{font-size:14px;}
-
 .c_white{color:#fff!important;}
 .c_002c9a{color:var(--primary-color)!important;}
 .c_e40000{color:#e40000!important;}
@@ -58,10 +51,7 @@
 .c_222{color:#222!important;}
 .c_666{color:#666!important;}
 
-.color_red{color:var(--red-color);}
-.color_blue{color:var(--blue-color);}
-.color_green{color:var(--green-color);}
-.color_yellow{color:#eea301;}
+.color_red{color:#F43131;}
 
 /* =============================================
    폰트 강조(GmarketSans Bold)
@@ -94,8 +84,6 @@
 .text_deco3::after{position:absolute;top:50%;left:0;content:"";width:5px;height:17px;border-radius:2.5px;background-color:var(--secondary-light-color);transform:translateY(-50%);}
 .font_ellipsis>p{display:-webkit-inline-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-weight:300;line-break:anywhere;text-align:left;}
 .font_ellipsis>a>p{display:-webkit-inline-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-weight:400;line-break:anywhere;text-align:left;}
-.desc_text{font-size:14px;color:#666;}
-
 
 /* ===================== SORT BUTTON / CASE COUNT ===================== */
 .sort_wrap{display:inline-block;}
@@ -122,9 +110,6 @@
 
 .form_area.column{flex-direction:column;}
 
-.form_row{display:flex;gap:8px;}
-.form_row *{margin:0;}
-
 select{border:1px solid #e5e5e5;vertical-align:middle;font-family:'Pretendard';font-weight:300;font-size:16px;}
 select.selType1{padding:0 25px 0 10px;height:34px;border:1px solid #d5d5d5;border-radius:3px;background-image:url(/publish/images/select_search2.png);background-repeat:no-repeat;background-position:right 5px top 50%;color:#777;}
 select.selType2{margin-left:2px;align-self:center;padding-left:12px;width:125px;height:36px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box;background-image:url(/publish/images/select_search.png);background-repeat:no-repeat;background-position:92% center;font-size:16px;color:#666;}
@@ -137,7 +122,6 @@
 input::placeholder{font-family:'Pretendard';font-weight:300;color:#a6a6a6!important;}
 input:-ms-input-placeholder{font-family:'Pretendard';font-weight:300;color:#a6a6a6!important;}
 input[type="text"]{padding:0 10px;border-radius:3px;font-size:16px;}
-input[type="text"]:active{border:1px solid var(--blue-color);}
 input[type="text"].readonly::placeholder{color:#222!important;}
 input[type="text"].readonly:-ms-input-placeholder{color:#222!important;}
 input[type="text"].inputLight::placeholder{color:#a6a6a6!important;}
@@ -178,33 +162,7 @@
 .w100{width:100%;}
 .h100{height:100%;}
 
-/* ==========================================================================
-   배지 및 상태 표시 박스 (Badges & Boxes)
-   ========================================================================== */
-.badge_wrap{padding:10px;border-radius:5px;}
-.badge_wrap.red{background:#ffeaea;}
-.badge_wrap .badge{padding:0;}
 
-.badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;font-size:14px;font-weight:400;border-radius:5px;box-sizing:border-box;gap:8px;}
-.badge.blue{color:#002c9a;background:#e6eaf5;}
-.badge.yellow{color:#FF8800;background:#FFF4E6;}
-.badge.red{color:#E40000;background:#FFEAEA;}
-.badge.green{color:#18BB59;background:#e8f9ef;}
-
-.badge i{display:inline-block;width:6px;height:6px;border-radius:100%;}
-.badge.blue i{background:#002c9a;}
-.badge.yellow i{background:#FF8800;}
-.badge.red i{background:#E40000;}
-.badge .icon{width:16px;height:16px;border-radius:0;}
-.badge.red .error{background:transparent url(/publish/images/content/icon_error.png) no-repeat center;}
-.badge.yellow .warning{background:transparent url(/publish/images/content/icon_warning.png) no-repeat center;}
-.badge.green .success{background:transparent url(/publish/images/content/icon_success.png) no-repeat center;}
-
-/* 박스 유형별 스타일 */
-.gray_box{padding:20px 25px;font-size:14px;font-weight:400;line-height:1.4;color:#666;}
-.gray_box.fill{background:#f5f5f5;border-radius:5px;}
-.white_box{padding:12px 16px;margin:8px 0 0 0;font-size:14px;line-height:1.4;color:#333;background:#fff;border-radius:5px;}
-.lightred_box.fill{padding:20px 12px;font-size:16px;font-weight:400;line-height:1.4;color:#222;text-align:center;background:#FFEAEA;border-radius:5px;}
 
 /* =============================================
    테이블 타입
@@ -240,8 +198,6 @@
 .tType1 tbody tr td.putText .put_left.long textarea {height: 380px;}
 .tType1 tbody tr td.putText .put_left.long.on {border: 1px solid #12bec9;border-radius: 5px;background-color: #eef5f9 !important;}
 .tType1 tbody tr td.putText .put_left.photo.on {border: 1px solid #e26ba9;border-radius: 5px;background-color: #f8f1f5 !important;}
-.tType1 tbody tr td.put_num .badge{margin:0 0 0 8px;}
-.tType1 tbody tr td.put_num .badge.yellow{cursor:pointer;}
 .tType1 tbody tr.msg_title {display:none;}
 .tType1 tbody tr.msg_title.active {display:table-row;}
 .tType1 tbody tr.msg_title td .title_wrap .textbox {display:none;margin:10px 0 0;}
 
src/main/webapp/publish/payment_toss.html (deleted)
--- src/main/webapp/publish/payment_toss.html
@@ -1,276 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko">
-
-<head>
-	<meta charset="UTF-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>문자온</title>
-
-	<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">
-	<link rel="stylesheet" href="/publish/css/reset.css">
-	<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
-	<link rel="stylesheet" href="/publish/css/common.css">
-	<link rel="stylesheet" href="/publish/css/style.css">
-	<link rel="stylesheet" href="/publish/css/button.css">
-	<link rel="stylesheet" href="/publish/css/content.css">
-	<link rel="stylesheet" href="/publish/css/mem.css">
-	<link rel="stylesheet" href="/publish/css/font.css">
-	<link rel="stylesheet" href="/publish/css/popupLayer.css">
-
-	<script src="/publish/js/jquery-3.5.0.js"></script>
-	<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
-	<script src="/publish/js/common.js"></script>
-	<script src="/publish/js/content.js"></script>
-	<script src="/publish/js/calendar.js"></script>
-	<script src="/publish/js/popup.js"></script>
-	<script src="/publish/js/popupLayer.js"></script>
-
-	<script src="https://mup.mobilians.co.kr/js/ext/ext_inc_comm.js"></script>
-	<script type="text/javascript" src="/js/MJUtill.js"></script>
-	<script src="https://js.tosspayments.com/v1/payment-widget"></script>
-	<script>
-		let paymentWidget;
-		let paymentMethodWidget;
-	
-		$(document).ready(function () {
-	
-			const $input = $('.money_input');
-			const $message = $('.input_message');
-	
-			// 금액 추가 버튼 클릭
-			$('.add_money .btn').on('click', function () {
-	
-				const addAmount = Number($(this).data('price'));
-	
-				// 현재 입력값 숫자만 추출
-				let currentValue = $input.val().replace(/[^0-9]/g, '');
-				currentValue = currentValue ? Number(currentValue) : 0;
-	
-				// 금액 합산
-				const total = currentValue + addAmount;
-	
-				// input 표시
-				$input.val(numberWithCommas(total));
-	
-				// 금액 갱신
-				updatePrice(total);
-	
-			});
-	
-			// 직접 입력
-			$input.on('input', function () {
-				let value = $(this).val().replace(/[^0-9]/g, '');
-				value = value ? Number(value) : 0;
-				$(this).val(numberWithCommas(value));
-				updatePrice(value);
-			});
-			
-			// 토스페이먼츠 위젯 초기화
-			const clientKey = 'test_gck_KNbdOvk5rk15kdKpqQGo3n07xlzm';
-			const customerKey = 'test_customer_1234';
-	
-			paymentWidget = PaymentWidget(clientKey, customerKey);
-	
-			// 최초 금액
-			const initialAmount = 0;
-	
-			// 결제수단 렌더링
-			paymentMethodWidget = paymentWidget.renderPaymentMethods(
-				'#payment-method',
-				{ value: initialAmount }
-			);
-	
-			// 약관 렌더링
-			paymentWidget.renderAgreement('#agreement');
-	
-		});
-	
-		// 금액 업데이트
-		function updatePrice(price) {
-	
-			const $message = $('.input_message');
-	
-			const supplyPrice = price;
-			const vatPrice = Math.round(supplyPrice * 0.1);
-			const lastPrice = supplyPrice + vatPrice;
-	
-			// 화면 표시
-			$('#supplyPriceStr').text(numberWithCommas(supplyPrice));
-			$('#vatPriceStr').text(numberWithCommas(vatPrice));
-			$('#lastPriceStr').text(numberWithCommas(lastPrice));
-	
-			// 토스 결제 금액 변경
-			if (typeof paymentMethodWidget !== 'undefined') {
-				paymentMethodWidget.updateAmount(lastPrice);
-			}
-	
-			// 휴대폰 결제 제한 체크
-			if (price > 150000 || price < 5000) {
-				$(".money_input").addClass('error');
-				$message.addClass('active');
-				if(price<5001){
-					$message.find(".msg").text("최소 충전금액 5천원 이상 입력해주세요.");
-				}else{$message.find(".msg").text("휴대폰 결제는 최대 150,000원까지 입력 가능합니다.");}
-				
-			} else {
-				$(".money_input").removeClass('error');
-				$message.removeClass('active');
-			}
-		}
-	
-		// 결제 호출
-		function pgOpenerPopup() {
-	
-			const chargePrice = parseInt($('#price').val().replace(/[^0-9]/g, ''),10);
-	
-			const lastPrice = chargePrice + Math.round(chargePrice * 0.1);
-	
-			if (chargePrice < 5000) {
-				alert("최소 충전금액 5천원 이상 입력해주세요.");
-				return false;
-			}
-	
-			paymentWidget.requestPayment({
-				orderId: 'ORDER_' + new Date().getTime(),
-				orderName: '문자온 충전 ' + lastPrice + '원',
-				successUrl: window.location.origin + '/web/member/pay/tossSuccess.do',
-				failUrl: window.location.origin + '/web/member/pay/tossFail.do',
-				customerEmail: $('#mberEmailAdres').val(),
-				customerName: $('#mberNm').val(),
-				customerMobilePhone: $('#moblphonNo').val()
-			}).catch(function (error) {
-	
-				if (error.code === 'USER_CANCEL') {
-					alert('결제를 취소하셨습니다.');
-				} else {
-					alert(error.message);
-				}
-	
-			});
-		}
-	
-		// 콤마 함수
-		function numberWithCommas(x) {
-			return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
-		}
-	</script>
-
-</head>
-
-<body>
-	<div data-include-path="/publish/layout/_header.html"></div>
-	<!-- content 영역 -->
-	<div id="container" class="cont sub">
-		<div class="inner">
-			<!-- send top -->
-			<div class="send_top">
-				<!-- tab button -->
-				<ul class="tabType4">
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment1.html'">요금안내/견적내기</button></li>
-					<li class="tab active"><button type="button" onclick="TabType5(this,'2');">결제하기</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment3.html'">요금 결제내역</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment4.html'">요금 사용내역</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment5.html'">세금계산서 발행 등록</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="infoListPop('payment2','792','250');">사용안내</button>
-					</div>
-					
-					<div>
-					<!-- 토스페이먼츠 결제수단 위젯 영역 -->
-						<div id="payment-method" class="toss_wrap"></div>
-
-						<!-- 토스페이먼츠 이용약관 영역 -->
-						<div id="agreement" class="toss_wrap"></div>
-						
-						<!-- <b class="fs_18 fwMd">충전할 금액을 선택한 후 <spa n class="c_002c9a">[충전하기]</span> 버튼을 눌러주세요</b> -->
-						<div class="area_tabcont on " id="tab2_1">
-							<p class="tType1_title"><img src="/publish/images/credit_small.png" alt="신용카드"> 신용카드</p>
-							<table class="tType1">
-								<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> -->
-											
-											<div class="money_form_wrap form_wrap">
-												<input type="text" name="price" id="price" class="input money_input" placeholder="1,000원 이상 입력해주세요." value="50,000" min="5,000" max="150,000"/>
-												<p class="input_in">원</p>
-												<p class="input_message error">
-													<i class="icon error">!</i> <span class="msg">휴대폰 결제는 최대 150,000원까지 입력 가능합니다.</span>
-												</p>
-											</div>
-											
-											<div class="btn_wrap add_money w100per">
-												<button type="button" class="btn" data-price="10000">+ 1만원</button>
-												<button type="button" class="btn" data-price="50000">+ 5만원</button>
-												<button type="button" class="btn" data-price="100000">+ 10만원</button>
-												<button type="button" class="btn" data-price="1000000">+ 100만원</button>
-											</div>
-											<!-- <span class="reqTxt6">※ 최소 3천원 이상부터 결제 가능합니다.</span> -->
-										</td>
-									</tr>
-									
-									<tr>
-										<td colspan="2">
-											<div class="amount_wrap">
-												<dl>
-													<dt>최종 결제금액 :</dt>
-													<dd>
-														<ul>
-															<li><strong id="supplyPriceStr">50,000</strong>원(공급가액)</li>
-															<li><span class="plus"></span><strong id="vatPriceStr">5,000</strong>원(부가세)</li>
-															<li class="total"><span class="equal"></span><strong class="c_e40000" id="lastPriceStr">55,000</strong>원(최종금액)</li>
-														</ul>
-													</dd>
-												</dl>
-												<button type="button" class="btn btnType fill primary btn_pay" onclick="pgOpenerPopup(); return false;" >충전하기</button>
-											</div>
-										</td>
-										
-									</tr>
-									
-								</tbody>
-							</table>
-						</div>
-						
-					</div>
-
-				</div><!-- 결제관리 - 결제하기 -->
-			</div>
-			<!--// send top -->
-		</div>
-	</div>
-	<!--// content 영역 -->
-	<!-- footer 영역 -->
-	<div data-include-path="/publish/layout/_footer.html"></div>
-	<!--// footer 영역 -->
-</body>
-
-</html>(No newline at end of file)
 
src/main/webapp/publish/payment_toss_evaluation.html (deleted)
--- src/main/webapp/publish/payment_toss_evaluation.html
@@ -1,381 +0,0 @@
-<!DOCTYPE html>
-<html lang="ko">
-
-<head>
-	<meta charset="UTF-8">
-	<meta http-equiv="X-UA-Compatible" content="IE=edge">
-	<title>문자온</title>
-
-	<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">
-	<link rel="stylesheet" href="/publish/css/reset.css">
-	<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
-	<link rel="stylesheet" href="/publish/css/common.css">
-	<link rel="stylesheet" href="/publish/css/style.css">
-	<link rel="stylesheet" href="/publish/css/button.css">
-	<link rel="stylesheet" href="/publish/css/content.css">
-	<link rel="stylesheet" href="/publish/css/mem.css">
-	<link rel="stylesheet" href="/publish/css/font.css">
-	<link rel="stylesheet" href="/publish/css/popupLayer.css">
-
-	<script src="/publish/js/jquery-3.5.0.js"></script>
-	<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
-	<script src="/publish/js/common.js"></script>
-	<script src="/publish/js/content.js"></script>
-	<script src="/publish/js/calendar.js"></script>
-	<script src="/publish/js/popup.js"></script>
-	<script src="/publish/js/popupLayer.js"></script>
-
-	<script src="https://mup.mobilians.co.kr/js/ext/ext_inc_comm.js"></script>
-	<script type="text/javascript" src="/js/MJUtill.js"></script>
-	<script src="https://js.tosspayments.com/v1/payment-widget"></script>
-	<script>
-		let paymentWidget;
-		let paymentMethodWidget;
-	
-		$(document).ready(function () {
-			
-			// 토스페이먼츠 위젯 초기화 세팅
-			const clientKey = 'test_gck_KNbdOvk5rk15kdKpqQGo3n07xlzm';
-			const customerKey = 'test_customer_1234';
-	
-			paymentWidget = PaymentWidget(clientKey, customerKey);
-	
-			// 최초 선택된 체크박스 기준 금액 세팅
-			setPriceMake();
-	
-			const initialAmount = parseInt($("#price").val(), 10);
-	
-			// 결제수단 및 약관 위젯 렌더링
-			paymentMethodWidget = paymentWidget.renderPaymentMethods(
-				'#payment-method',
-				{ value: initialAmount }
-			);
-	
-			paymentWidget.renderAgreement('#agreement');
-			
-			$(".tType4 tbody tr td").click(function () {
-				$("input[name='price']").prop("checked", false);
-				$(this).closest("tr").find("input[name='price']").prop("checked", true);
-
-				// 금액 갱신
-				setPriceMake();
-			});
-			
-		});
-	
-	
-		function setPriceMake() {
-	
-			const checkedRow = $('input[name="price"]:checked').closest('tr');
-			const priceText = checkedRow.find('td').eq(1).text().replace(/,/g, '').trim();
-			const supplyPrice = parseInt(priceText, 10);
-			const vatPrice = Math.round(supplyPrice * 0.1);
-			const lastPrice = supplyPrice + vatPrice;
-	
-			// hidden input 값
-			$("#price").val(lastPrice);
-	
-			// 화면 표시
-			$('#supplyPriceStr').html(numberWithCommas(supplyPrice));
-			$('#vatPriceStr').html(numberWithCommas(vatPrice));
-			$('#lastPriceStr').html(numberWithCommas(lastPrice));
-	
-			// 토스 위젯 금액 변경
-			if (typeof paymentMethodWidget !== 'undefined') {
-				paymentMethodWidget.updateAmount(lastPrice);
-			}
-		}
-	
-	
-		// 체크박스 단일 선택 처리
-		$(document).on('change', 'input[name="price"]', function () {
-			$('input[name="price"]').not(this).prop('checked', false);
-			$(this).prop('checked', true);
-	
-			// 금액 갱신
-			setPriceMake();
-		});
-		
-		// 후불제여부 체크
-		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;
-		}
-		
-		function pgOpenerPopup(){
-			
-			var lastPrice = parseInt($("#price").val(), 10);
-			if(lastPrice < 5500){
-				alert("최소 충전금액 5천원 이상 선택해주세요.");
-				return false;
-			}
-
-			// 토스페이먼츠 결제창 바로 호출
-			paymentWidget.requestPayment({
-				orderId: 'ORDER_' + new Date().getTime(), // 고유한 상점 주문번호 생성
-				orderName: '문자고 충전 ' + lastPrice + '원',
-				successUrl: window.location.origin + '/web/member/pay/tossSuccess.do', // 결제 성공 시 이동할 URL (백엔드 컨트롤러 생성 필요)
-				// paymentType=NORMAL
-				// &orderId=ORDER_1778047452906
-				// &paymentKey=tmunj2026050615041659Zv9
-				// &amount=55000
-				failUrl: window.location.origin + '/web/member/pay/tossFail.do',       // 결제 실패 시 이동할 URL (백엔드 컨트롤러 생성 필요)
-				customerEmail: $('#mberEmailAdres').val(), // 필요시 로그인한 사용자의 이메일 매핑
-				customerName: $('#mberNm').val(),   // 필요시 로그인한 사용자의 이름 매핑
-				customerMobilePhone: $('#moblphonNo').val()
-			}).catch(function (error) {
-				if (error.code === 'USER_CANCEL') {
-					alert('결제를 취소하셨습니다.');
-				} else {
-					alert(error.message);
-				}
-			});
-		}
-	
-	
-		// 숫자 콤마 함수
-		function numberWithCommas(x) {
-			return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
-		}
-		
-	</script>
-
-</head>
-
-<body>
-	<div data-include-path="/publish/layout/_header.html"></div>
-	<!-- content 영역 -->
-	<div id="container" class="cont sub">
-		<div class="inner">
-			<!-- send top -->
-			<div class="send_top">
-				<!-- tab button -->
-				<ul class="tabType4">
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment1.html'">요금안내/견적내기</button></li>
-					<li class="tab active"><button type="button" onclick="TabType5(this,'2');">결제하기</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment3.html'">요금 결제내역</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment4.html'">요금 사용내역</button></li>
-					<li class="tab"><button type="button" onclick="location.href='/publish/payment5.html'">세금계산서 발행 등록</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="infoListPop('payment2','792','250');">사용안내</button>
-					</div>
-					
-					<div>
-					<!-- 토스페이먼츠 결제수단 위젯 영역 -->
-						<div id="payment-method" class="toss_wrap"></div>
-
-						<!-- 토스페이먼츠 이용약관 영역 -->
-						<div id="agreement" class="toss_wrap"></div>
-						
-						<b class="fs_18 fwMd">결제할 금액을 선택한 후 <span class="c_002c9a">[결제하기]</span> 버튼을 눌러주세요</b>
-						<div class="tb_wrap" style="margin:12px 0 0 0;">
-							<table class="tType4">
-								<colgroup>
-									<col style="width:60px;"/>
-									<col style="width:calc((100% - 60px)/4);"/>
-									<col style="width:calc((100% - 60px)/4);"/>
-									<col style="width:calc((100% - 60px)/4);"/>
-									<col style="width:calc((100% - 60px)/4);"/>
-								</colgroup>
-								<thead>
-									<tr>
-										<th>선택</th>
-										<th>결제금액</th>
-										<th>단문(15원)</th>
-										<th>장문(39원)</th>
-										<th>그림(70원)</th>
-									</tr>
-								</thead>
-								<tbody>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>10,000</td>
-										<td><b class="c_002c9a fwBold">666</b>건</td>
-										<td><b class="c_002c9a fwBold">256</b>건</td>
-										<td><b class="c_002c9a fwBold">142</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>20,000</td>
-										<td><b class="c_002c9a fwBold">1,333</b>건</td>
-										<td><b class="c_002c9a fwBold">512</b>건</td>
-										<td><b class="c_002c9a fwBold">285</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>30,000</td>
-										<td><b class="c_002c9a fwBold">2,000</b>건</td>
-										<td><b class="c_002c9a fwBold">769</b>건</td>
-										<td><b class="c_002c9a fwBold">428</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>40,000</td>
-										<td><b class="c_002c9a fwBold">2,666</b>건</td>
-										<td><b class="c_002c9a fwBold">1,025</b>건</td>
-										<td><b class="c_002c9a fwBold">571</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price" checked/>
-										</td>
-										<td>50,000</td>
-										<td><b class="c_002c9a fwBold">3,333</b>건</td>
-										<td><b class="c_002c9a fwBold">1,282</b>건</td>
-										<td><b class="c_002c9a fwBold">714</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>100,000</td>
-										<td><b class="c_002c9a fwBold">6,666</b>건</td>
-										<td><b class="c_002c9a fwBold">2,564</b>건</td>
-										<td><b class="c_002c9a fwBold">1,428</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>150,000</td>
-										<td><b class="c_002c9a fwBold">10,000</b>건</td>
-										<td><b class="c_002c9a fwBold">3,846</b>건</td>
-										<td><b class="c_002c9a fwBold">2,142</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>200,000</td>
-										<td><b class="c_002c9a fwBold">13,333</b>건</td>
-										<td><b class="c_002c9a fwBold">5,128</b>건</td>
-										<td><b class="c_002c9a fwBold">2,857</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>300,000</td>
-										<td><b class="c_002c9a fwBold">20,000</b>건</td>
-										<td><b class="c_002c9a fwBold">7,692</b>건</td>
-										<td><b class="c_002c9a fwBold">4,285</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>400,000</td>
-										<td><b class="c_002c9a fwBold">26,666</b>건</td>
-										<td><b class="c_002c9a fwBold">10,256</b>건</td>
-										<td><b class="c_002c9a fwBold">5,714</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>500,000</td>
-										<td><b class="c_002c9a fwBold">33,333</b>건</td>
-										<td><b class="c_002c9a fwBold">12,820</b>건</td>
-										<td><b class="c_002c9a fwBold">7,142</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>1,000,000</td>
-										<td><b class="c_002c9a fwBold">66,666</b>건</td>
-										<td><b class="c_002c9a fwBold">25,641</b>건</td>
-										<td><b class="c_002c9a fwBold">14,285</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>1,500,000</td>
-										<td><b class="c_002c9a fwBold">100,000</b>건</td>
-										<td><b class="c_002c9a fwBold">38,461</b>건</td>
-										<td><b class="c_002c9a fwBold">21,428</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>2,000,000</td>
-										<td><b class="c_002c9a fwBold">133,333</b>건</td>
-										<td><b class="c_002c9a fwBold">51,282</b>건</td>
-										<td><b class="c_002c9a fwBold">28,571</b>건</td>
-									</tr>
-									<tr>
-										<td>
-											<input type="checkbox" name="price"/>
-										</td>
-										<td>5,000,000</td>
-										<td><b class="c_002c9a fwBold">333,333</b>건</td>
-										<td><b class="c_002c9a fwBold">128,205</b>건</td>
-										<td><b class="c_002c9a fwBold">71,428</b>건</td>
-									</tr>
-								</tbody>
-							</table>
-						</div>
-						
-						<div class="amount_wrap" style="margin:20px 0 0 0;padding:12px 30px 12px 35px;border:3px solid #ddd;border-radius:5px;">
-							<dl>
-								<dt>최종 결제금액 :</dt>
-								<dd>
-									<ul>
-										<li><strong id="supplyPriceStr">50,000</strong>원(결제금액)</li>
-										<li><span class="plus"></span><strong id="vatPriceStr">5,000</strong>원(부가세)</li>
-										<li class="total"><span class="equal"></span><strong class="c_e40000" id="lastPriceStr">55,000</strong>원(최종금액)</li>
-									</ul>
-								</dd>
-							</dl>
-							<button type="button" class="btn btnType fill primary" onclick="pgOpenerPopup(); return false;" style="width:210px;">결제하기</button>
-						</div>
-
-
-					</div>
-
-				</div><!-- 결제관리 - 결제하기 -->
-			</div>
-			<!--// send top -->
-		</div>
-	</div>
-	<!--// content 영역 -->
-	<!-- footer 영역 -->
-	<div data-include-path="/publish/layout/_footer.html"></div>
-	<!--// footer 영역 -->
-</body>
-
-</html>(No newline at end of file)
Add a comment
List