using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using XPayClientNet;
using JsonFx.Json;
public partial class payres : System.Web.UI.Page
{
protected String configPath; //ȯ°æÆÄÀÏ À§Ä¡
protected String CST_PLATFORM;
protected String CST_MID;
protected String LGD_MID;
protected String LGD_PAYKEY;
protected String DB_AMOUNT; //DB³ª ¼¼¼Ç¿¡¼ °¡Á®¿Â ±Ý¾× (ÃÖÁ¾ °áÁ¦±Ý¾×üũ½Ã »ç¿ë)
//MMSó¸® Ç׸ñ
protected String MM_OID; //û±¸ID (20ÀÚ¸®) CREATE_GB+CREATEDATE+CREATE_SEQ+COMPCODE
protected String MM_COMPCODE; //ÇнÀ°üÄÚµå
protected String MM_MEMNO; //ȸ¿øÄÚµå
protected String MM_MID_GB; //ºÐÇÒÁ¤»ê »ç¾÷À屸ºÐ : ¨çº»»ç(»óǰ,´ë³³½Ã):1, ¨èÇнÀ°ü:2, ¨éºÐÇÒÁ¤»ê:3
protected String MM_INSTEAD_PAY_YN; //ÇнÀ°ü¿¡¼ ´ë³³½Ã¿¡¸¸ »ç¿ë ±âº»°ª : N, ´ë³³½Ã: Y
protected String MM_ROW_INPUT_IP; //Á¢¼ÓÀÚ IPÁ¤º¸
protected string MM_SAVEAMT; //Àû¸³±Ý »ç¿ë
protected string MM_BOOKAMT; //±³Àç°áÁ¦±Ý¾×
protected void Page_Load(object sender, EventArgs e)
{
/* ¡Ø Áß¿ä
* ȯ°æ¼³Á¤ ÆÄÀÏÀÇ °æ¿ì ¹Ýµå½Ã ¿ÜºÎ¿¡¼ Á¢±ÙÀÌ °¡´ÉÇÑ °æ·Î¿¡ µÎ½Ã¸é ¾ÈµË´Ï´Ù.
* ÇØ´ç ȯ°æÆÄÀÏÀÌ ¿ÜºÎ¿¡ ³ëÃâÀÌ µÇ´Â °æ¿ì ÇØÅ·ÀÇ À§ÇèÀÌ Á¸ÀçÇϹǷΠ¹Ýµå½Ã ¿ÜºÎ¿¡¼ Á¢±ÙÀÌ ºÒ°¡´ÉÇÑ °æ·Î¿¡ µÎ½Ã±â ¹Ù¶ø´Ï´Ù.
* ¿¹) [Window °è¿] C:\inetpub\wwwroot\lgdacom ==> Àý´ëºÒ°¡(À¥ µð·ºÅ丮)
*/
XPayClient xpay = new XPayClient();
try
{
if (!IsPostBack)
{
configPath = "C:\\lgdacom"; //LGÀ¯Ç÷¯½º¿¡¼ Á¦°øÇÑ È¯°æÆÄÀÏ À§Ä¡¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä.
/*
* [ÃÖÁ¾°áÁ¦¿äû ÆäÀÌÁö(STEP2-2)]
*
* ¸Å´º¾ó "5.1. Smart XPay °áÁ¦ ¿äû ÆäÀÌÁö °³¹ß"ÀÇ "´Ü°è 5. ÃÖÁ¾ °áÁ¦ ¿äû ¹× ¿äû °á°ú ó¸®" ÂüÁ¶
* LGÀ¯Ç÷¯½ºÀ¸·Î ºÎÅÍ ³»·Á¹ÞÀº LGD_PAYKEY(ÀÎÁõKey)¸¦ °¡Áö°í ÃÖÁ¾ °áÁ¦¿äû.(ÆÄ¶ó¹ÌÅÍ Àü´Þ½Ã POST¸¦ »ç¿ëÇϼ¼¿ä)
*/
/*
*************************************************
* 1.ÃÖÁ¾°áÁ¦ ¿äû(¼öÁ¤ÇÏÁö ¸¶¼¼¿ä) - BEGIN
* (´Ü, ÃÖÁ¾ ±Ý¾×üũ¸¦ ¿øÇϽô °æ¿ì ±Ý¾×üũ ºÎºÐ ÁÖ¼®À» Á¦°Å ÇÏ½Ã¸é µË´Ï´Ù.)
*************************************************
*/
MM_OID = Request.Params.Get("MM_OID");
MM_COMPCODE = Request.Params.Get("MM_COMPCODE");
MM_MEMNO = Request.Params.Get("MM_MEMNO");
MM_MID_GB = Request.Params.Get("MM_MID_GB");
MM_INSTEAD_PAY_YN = Request.Params.Get("MM_INSTEAD_PAY_YN");
MM_SAVEAMT = Request.Params.Get("MM_SAVEAMT");
MM_BOOKAMT = Request.Params.Get("MM_BOOKAMT");
//MM_ROW_INPUT_IP = Request.Params.Get("MM_ROW_INPUT_IP");
CST_PLATFORM = CodeHelper.RequestStr(Request.Params.Get("CST_PLATFORM"), Request.Url.Host == "mms.moumou.co.kr" ? "service" : "test");
CST_MID = Request.Params.Get("CST_MID");
LGD_MID = (("test".Equals(CST_PLATFORM.Trim())) ? "t" : "") + CST_MID;
LGD_PAYKEY = Request.Params.Get("LGD_PAYKEY");
DB_AMOUNT = Request.Params.Get("LGD_AMOUNT"); //¹Ýµå½Ã À§º¯Á¶°¡ ºÒ°¡´ÉÇÑ °÷(DB³ª ¼¼¼Ç)¿¡¼ ±Ý¾×À» °¡Á®¿À½Ê½Ã¿ä.
// (1) XpayClientÀÇ »ç¿ëÀ» À§ÇÑ xpay °´Ã¼ »ý¼º
// (2) Init: XPayClient ÃʱâÈ(ȯ°æ¼³Á¤ ÆÄÀÏ ·Îµå)
// configPath: ¼³Á¤ÆÄÀÏ
// CST_PLATFORM: - test, service °ª¿¡ µû¶ó lgdacom.confÀÇ test_url(test) ¶Ç´Â url(srvice) »ç¿ë
// - test, service °ª¿¡ µû¶ó Å×½ºÆ®¿ë ¶Ç´Â ¼ºñ½º¿ë ¾ÆÀ̵ð »ý¼º
xpay.Init(configPath, CST_PLATFORM);
try
{
// (3) Init_TX: ¸Þ¸ð¸®¿¡ mall.conf, lgdacom.conf ÇÒ´ç ¹× Æ®·£Àè¼ÇÀÇ °íÀ¯ÇÑ Å° TXID »ý¼º
xpay.Init_TX(LGD_MID);
xpay.Set("LGD_TXNAME", "PaymentByKey");
xpay.Set("LGD_PAYKEY", LGD_PAYKEY);
//±Ý¾×À» üũÇϽñ⠿øÇÏ´Â °æ¿ì ¾Æ·¡ ÁÖ¼®À» Ç®¾î¼ ÀÌ¿ëÇϽʽÿä.
xpay.Set("LGD_AMOUNTCHECKYN", "Y");
xpay.Set("LGD_AMOUNT", DB_AMOUNT);
}
catch (Exception err)
{
// LG U+ API »ç¿ë ºÒ°¡, ¼³Á¤ÆÄÀÏ È®ÀÎ µî ÇÊ¿ä(¿¹¿Üó¸®)
Response.Write("ȯ°æÆÄÀÏÀÇ °æ·Î°¡ À߸ø µÇ¾ú½À´Ï´Ù. configPathÀÇ °æ·Î¸¦ È®ÀÎÇØ Áֽñ⠹ٶø´Ï´Ù.");
Response.Write(err.Message);
return;
}
/*
*************************************************
* 1.ÃÖÁ¾°áÁ¦ ¿äû(¼öÁ¤ÇÏÁö ¸¶¼¼¿ä) - END
*************************************************
*/
/*
* 2. ÃÖÁ¾°áÁ¦ ¿äû °á°ú ó¸®
*
* ÃÖÁ¾ °áÁ¦¿äû °á°ú ¸®ÅÏ ÆÄ¶ó¹ÌÅÍ´Â ¿¬µ¿¸Þ´º¾óÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.
*/
// (4) TX: lgdacom.conf¿¡ ¼³Á¤µÈ URL·Î ¼ÒÄÏ Åë½ÅÇÏ¿© ÃÖÁ¾ ÀÎÁõ¿äû, °á°ú°ªÀ¸·Î true, false ¸®ÅÏ
Account_BLL bll = new Account_BLL();
Tablet_BLL bll2 = new Tablet_BLL();
if (xpay.TX())
{
if (Request.Url.Host != "mms.moumou.co.kr")
{
//1)°áÁ¦°á°ú ȸéó¸®(¼º°ø,½ÇÆÐ °á°ú 󸮸¦ ÇϽñ⠹ٶø´Ï´Ù.
Response.Write("°áÁ¦¿äûÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù.
");
Response.Write("TX Response_code : " + xpay.m_szResCode + "
"); //Åë½Å ÀÀ´äÄÚµå("0000" ÀÏ ¶§ Åë½Å ¼º°ø)
Response.Write("TX Response_msg : " + xpay.m_szResMsg + "
");
ShowErrorResult(xpay.m_szResCode, result, xpay.Response("LGD_PAYTYPE", 0));
if ("0000".Equals(xpay.m_szResCode))
{
Response.Write("ÀÚµ¿Ãë¼Ò°¡ Á¤»óÀûÀ¸·Î ¿Ï·á µÇ¾ú½À´Ï´Ù.
");
}
else
{
Response.Write("ÀÚµ¿Ãë¼Ò°¡ Á¤»óÀûÀ¸·Î 󸮵ÇÁö ¾Ê¾Ò½À´Ï´Ù.
");
}
}
else
{
//ÇҺΰ³¿ù ¾÷µ¥ÀÌÆ® ó¸®
bll2.UpdatePayMonth(xpay.Response("LGD_CARDINSTALLMONTH", 0), MM_OID);
}
}
else
{
//ÃÖÁ¾°áÁ¦¿äû °á°ú ½ÇÆÐ DBó¸®
//Response.Write("ÃÖÁ¾°áÁ¦¿äû °á°ú ½ÇÆÐ DBó¸®ÇϽñ⠹ٶø´Ï´Ù.
");
// DBó¸® ±¸Çö ºÎºÐ(¹«¹«)
//ShowErrorResult(xpay.m_szResCode, xpay.m_szResMsg, xpay.Response("LGD_PAYTYPE", 0));
CodeHelper.AddOnlinePaymentError(xpay.Response("LGD_OID", 0), xpay.m_szResCode, xpay.m_szResMsg);
}
}
else
{
//2)API ¿äû½ÇÆÐ ȸéó¸®
//Response.Write("°áÁ¦¿äûÀÌ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù.
");
//Response.Write("TX Response_code : " + xpay.m_szResCode + "
");
//Response.Write("TX Response_msg : " + xpay.m_szResMsg + "
");
ShowErrorResult(xpay.m_szResCode, xpay.m_szResMsg, xpay.Response("LGD_PAYTYPE", 0));
//DB ó¸® ±¸Çö ºÎºÐ(¹«¹«)
CodeHelper.AddOnlinePaymentError(xpay.Response("LGD_OID", 0), xpay.m_szResCode, xpay.m_szResMsg);
}
//ȸ鼳Á¤(ÁÖ¹®³»¿ª)
lblLGD_BUYER.Text = Request.Params.Get("LGD_BUYER");
lblLGD_PRODUCTINFO.Text = Request.Params.Get("LGD_PRODUCTINFO");
lblLGD_AMOUNT.Text = Request.Params.Get("LGD_AMOUNT");
int amt = CodeHelper.RequestInt(lblLGD_AMOUNT.Text, 0);
lblLGD_AMOUNT.Text = string.Format(@"{0:###,###}¿ø", amt);
lblLGD_OID.Text = Request.Params.Get("LGD_OID");
//ȸ鼳Á¤(°áÁ¦³»¿ª)
string payType = CodeHelper.GetPayType(xpay.Response("LGD_PAYTYPE", 0), true);
//lblLGD_PAYTYPE.Text = string.Format("{0} (°áÁ¦{1})", payType, Request.Params.Get("LGD_RESPCODE"));
lblLGD_PAYTYPE.Text = string.Format("{0} (°áÁ¦¿Ï·á)", payType);
lblLGD_FINANCENAME.Text = xpay.Response("LGD_FINANCENAME", 0);
lblLGD_ACCOUNTNUM.Text = CodeHelper.RequestStr(xpay.Response("LGD_CARDNUM", 0), xpay.Response("LGD_ACCOUNTNUM", 0));
string payDate = xpay.Response("LGD_PAYDATE", 0);
if (payDate.Length == 14)
lblLGD_PAYDATE.Text = string.Format("{0}-{1}-{2} {3}:{4}:{5}", payDate.Substring(0, 4), payDate.Substring(4, 2), payDate.Substring(6, 2), payDate.Substring(8, 2), payDate.Substring(10, 2), payDate.Substring(12));
amt = CodeHelper.RequestInt(xpay.Response("LGD_AMOUNT", 0), 0);
lblLGD_AMOUNT_PAY.Text = string.Format(@"{0:###,###}¿ø", amt);
lblLGD_CARDINSTALLMONTH.Text = (xpay.Response("LGD_CARDINSTALLMONTH", 0) == "00") ? "ÀϽúÒ" : xpay.Response("LGD_CARDINSTALLMONTH", 0) + "°³¿ù";
}
}
catch (Exception ex)
{
string msg = string.Empty;
xpay.Rollback("»óÁ¡ DBó¸® ½ÇÆÐ·Î ÀÎÇÏ¿© Rollback ó¸® [TID:" + xpay.Response("LGD_TID", 0) + ",MID:" + xpay.Response("LGD_MID", 0) + ",OID:" + xpay.Response("LGD_OID", 0) + "]");
msg = "MMS ½Ã½ºÅÛÀå¾Ö·Î ÀÎÇÏ¿© °áÁ¦Ãë¼Òó¸®";
if ("0000".Equals(xpay.m_szResCode))
{
msg += "=> ÀÚµ¿Ãë¼Ò°¡ Á¤»óÀûÀ¸·Î ¿Ï·á µÇ¾ú½À´Ï´Ù.." + ex.Message;
}
else
{
msg += "=> ÀÚµ¿Ãë¼Ò°¡ Á¤»óÀûÀ¸·Î 󸮵ÇÁö ¾Ê¾Ò½À´Ï´Ù..";
}
AppLog.WriteAppException(ex);
ShowErrorResult(xpay.m_szResCode, msg, xpay.Response("LGD_PAYTYPE", 0));
}
}
///