<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.security.MessageDigest" %>
<%@ page import="org.apache.commons.codec.binary.Hex" %>
<%
/*
*******************************************************
* <°áÁ¦¿äÃ» ÆÄ¶ó¹ÌÅÍ>
* °áÁ¦½Ã Form ¿¡ º¸³»´Â °áÁ¦¿äÃ» ÆÄ¶ó¹ÌÅÍÀÔ´Ï´Ù.
* »ùÇÃÆäÀÌÁö¿¡¼­´Â ±âº»(ÇÊ¼ö) ÆÄ¶ó¹ÌÅÍ¸¸ ¿¹½ÃµÇ¾î ÀÖÀ¸¸ç, 
* Ãß°¡ °¡´ÉÇÑ ¿É¼Ç ÆÄ¶ó¹ÌÅÍ´Â ¿¬µ¿¸Þ´º¾óÀ» Âü°íÇÏ¼¼¿ä.
*******************************************************
*/
String merchantKey 		= "7wnkxZbHvIA7FoCc6jF8IcXU+Wd3sn5BcMHuWJROe53AjRKnC6CistVdVZwrUKCCdaF+dAx230bwHSQ/E29RWA=="; // »óÁ¡Å°
String merchantID 		= "itn180208m"; 				// »óÁ¡¾ÆÀÌµð
String goodsName 		= "³ªÀÌ½ºÆäÀÌ"; 					// °áÁ¦»óÇ°¸í
String price 			= "500"; 						// °áÁ¦»óÇ°±Ý¾×	
String buyerName 		= "³ªÀÌ½º"; 						// ±¸¸ÅÀÚ¸í
String buyerTel 		= "01000000000"; 				// ±¸¸ÅÀÚ¿¬¶ôÃ³
String buyerEmail 		= "happy@day.co.kr"; 			// ±¸¸ÅÀÚ¸ÞÀÏÁÖ¼Ò
String moid 			= "mnoid1234567890"; 			// »óÇ°ÁÖ¹®¹øÈ£	
String returnURL 		= "http://localhost:8080/nicepay3.0_euc-kr/payResult.jsp"; // °á°úÆäÀÌÁö(Àý´ë°æ·Î) - ¸ð¹ÙÀÏ °áÁ¦Ã¢ Àü¿ë

returnURL  = "http://munjaon.co.kr/publish/nicepay/payResult.jsp";

/*
*******************************************************
* <ÇØ½¬¾ÏÈ£È­> (¼öÁ¤ÇÏÁö ¸¶¼¼¿ä)
* SHA-256 ÇØ½¬¾ÏÈ£È­´Â °Å·¡ À§º¯Á¶¸¦ ¸·±âÀ§ÇÑ ¹æ¹ýÀÔ´Ï´Ù. 
*******************************************************
*/
DataEncrypt sha256Enc 	= new DataEncrypt();
String ediDate 			= getyyyyMMddHHmmss();	
String hashString 		= sha256Enc.encrypt(ediDate + merchantID + price + merchantKey);
%>
<!DOCTYPE html>
<html>
<head>
<title>NICEPAY PAY REQUEST</title>
<meta charset="euc-kr">
<style>
	html,body {height: 100%;}
	form {overflow: hidden;}
</style>
<!-- ¾Æ·¡ js´Â PC °áÁ¦Ã¢ Àü¿ë jsÀÔ´Ï´Ù.(¸ð¹ÙÀÏ °áÁ¦Ã¢ »ç¿ë½Ã ÇÊ¿ä ¾øÀ½) -->
<script src="https://web.nicepay.co.kr/v3/webstd/js/nicepay-3.0.js" type="text/javascript"></script>
<script type="text/javascript">
//°áÁ¦Ã¢ ÃÖÃÊ ¿äÃ»½Ã ½ÇÇàµË´Ï´Ù.
function nicepayStart(){
	if(checkPlatform(window.navigator.userAgent) == "mobile"){//¸ð¹ÙÀÏ °áÁ¦Ã¢ ÁøÀÔ
		document.payForm.action = "https://web.nicepay.co.kr/v3/v3Payment.jsp";
		document.payForm.submit();
	}else{//PC °áÁ¦Ã¢ ÁøÀÔ
		goPay(document.payForm);
	}
}

//[PC °áÁ¦Ã¢ Àü¿ë]°áÁ¦ ÃÖÁ¾ ¿äÃ»½Ã ½ÇÇàµË´Ï´Ù. <<'nicepaySubmit()' ÀÌ¸§ ¼öÁ¤ ºÒ°¡´É>>
function nicepaySubmit(){
	document.payForm.submit();
}

//[PC °áÁ¦Ã¢ Àü¿ë]°áÁ¦Ã¢ Á¾·á ÇÔ¼ö <<'nicepayClose()' ÀÌ¸§ ¼öÁ¤ ºÒ°¡´É>>
function nicepayClose(){
	alert("°áÁ¦°¡ Ãë¼Ò µÇ¾ú½À´Ï´Ù");
}

//pc, mobile ±¸ºÐ(°¡ÀÌµå¸¦ À§ÇÑ »ùÇÃ ÇÔ¼öÀÔ´Ï´Ù.)
function checkPlatform(ua) {
	if(ua === undefined) {
		ua = window.navigator.userAgent;
	}
	
	ua = ua.toLowerCase();
	var platform = {};
	var matched = {};
	var userPlatform = "pc";
	var platform_match = /(ipad)/.exec(ua) || /(ipod)/.exec(ua) 
		|| /(windows phone)/.exec(ua) || /(iphone)/.exec(ua) 
		|| /(kindle)/.exec(ua) || /(silk)/.exec(ua) || /(android)/.exec(ua) 
		|| /(win)/.exec(ua) || /(mac)/.exec(ua) || /(linux)/.exec(ua)
		|| /(cros)/.exec(ua) || /(playbook)/.exec(ua)
		|| /(bb)/.exec(ua) || /(blackberry)/.exec(ua)
		|| [];
	
	matched.platform = platform_match[0] || "";
	
	if(matched.platform) {
		platform[matched.platform] = true;
	}
	
	if(platform.android || platform.bb || platform.blackberry
			|| platform.ipad || platform.iphone 
			|| platform.ipod || platform.kindle 
			|| platform.playbook || platform.silk
			|| platform["windows phone"]) {
		userPlatform = "mobile";
	}
	
	if(platform.cros || platform.mac || platform.linux || platform.win) {
		userPlatform = "pc";
	}
	
	return userPlatform;
}
</script>
</head>
<body>
<form name="payForm" method="post" action="payResult.jsp">
	<table>
		<tr>
			<th>°áÁ¦ ¼ö´Ü</th>
			<td><input type="text" name="PayMethod" value=""></td>
		</tr>
		<tr>
			<th>°áÁ¦ »óÇ°¸í</th>
			<td><input type="text" name="GoodsName" value="<%=goodsName%>"></td>
		</tr>
		<tr>
			<th>°áÁ¦ »óÇ°±Ý¾×</th>
			<td><input type="text" name="Amt" value="<%=price%>"></td>
		</tr>				
		<tr>
			<th>»óÁ¡ ¾ÆÀÌµð</th>
			<td><input type="text" name="MID" value="<%=merchantID%>"></td>
		</tr>	
		<tr>
			<th>»óÇ° ÁÖ¹®¹øÈ£</th>
			<td><input type="text" name="Moid" value="<%=moid%>"></td>
		</tr> 
		<tr>
			<th>±¸¸ÅÀÚ¸í</th>
			<td><input type="text" name="BuyerName" value="<%=buyerName%>"></td>
		</tr>
		<tr>
			<th>±¸¸ÅÀÚ¸í ÀÌ¸ÞÀÏ</th>
			<td><input type="text" name="BuyerEmail" value="<%=buyerEmail%>"></td>
		</tr>		
		<tr>
			<th>±¸¸ÅÀÚ ¿¬¶ôÃ³</th>
			<td><input type="text" name="BuyerTel" value="<%=buyerTel%>"></td>
		</tr>	 
		<tr>
			<th>ÀÎÁõ¿Ï·á °á°úÃ³¸® URL<!-- (¸ð¹ÙÀÏ °áÁ¦Ã¢ Àü¿ë)PC °áÁ¦Ã¢ »ç¿ë½Ã ÇÊ¿ä ¾øÀ½ --></th>
			<td><input type="text" name="ReturnURL" value="<%=returnURL%>"></td>
		</tr>
		<tr>
			<th>°¡»ó°èÁÂÀÔ±Ý¸¸·áÀÏ(YYYYMMDD)</th>
			<td><input type="text" name="VbankExpDate" value=""></td>
		</tr>		
					
		<!-- ¿É¼Ç -->	 
		<input type="hidden" name="GoodsCl" value="1"/>						<!-- »óÇ°±¸ºÐ(½Ç¹°(1),ÄÁÅÙÃ÷(0)) -->
		<input type="hidden" name="TransType" value="0"/>					<!-- ÀÏ¹Ý(0)/¿¡½ºÅ©·Î(1) --> 
		<input type="hidden" name="CharSet" value="euc-kr"/>				<!-- ÀÀ´ä ÆÄ¶ó¹ÌÅÍ ÀÎÄÚµù ¹æ½Ä -->
		<input type="hidden" name="ReqReserved" value=""/>					<!-- »óÁ¡ ¿¹¾àÇÊµå -->
					
		<!-- º¯°æ ºÒ°¡´É -->
		<input type="hidden" name="EdiDate" value="<%=ediDate%>"/>			<!-- Àü¹® »ý¼ºÀÏ½Ã -->
		<input type="hidden" name="SignData" value="<%=hashString%>"/>	<!-- ÇØ½¬°ª -->
	</table>
	<a href="#" class="btn_blue" onClick="nicepayStart();">¿ä Ã»</a>
</form>
</body>
</html>
<%!
public final synchronized String getyyyyMMddHHmmss(){
	SimpleDateFormat yyyyMMddHHmmss = new SimpleDateFormat("yyyyMMddHHmmss");
	return yyyyMMddHHmmss.format(new Date());
}
// SHA-256 Çü½ÄÀ¸·Î ¾ÏÈ£È­
public class DataEncrypt{
	MessageDigest md;
	String strSRCData = "";
	String strENCData = "";
	String strOUTData = "";
	
	public DataEncrypt(){ }
	public String encrypt(String strData){
		String passACL = null;
		MessageDigest md = null;
		try{
			md = MessageDigest.getInstance("SHA-256");
			md.reset();
			md.update(strData.getBytes());
			byte[] raw = md.digest();
			passACL = encodeHex(raw);
		}catch(Exception e){
			System.out.print("¾ÏÈ£È­ ¿¡·¯" + e.toString());
		}
		return passACL;
	}
	
	public String encodeHex(byte [] b){
		char [] c = Hex.encodeHex(b);
		return new String(c);
	}
}
%>