This commit is contained in:
parent
fe7c42f2b0
commit
a20782f806
|
|
@ -44,6 +44,7 @@ namespace NP.Base
|
|||
ViewBag.SSUIP = GetUserIP();
|
||||
ViewBag.SiteTitle = "영남건설기술교육원";
|
||||
ViewBag.AssignLogo = string.Empty;
|
||||
ViewBag.isPayTest = GetConfig("ispaytest");
|
||||
var suiv = TopMenuNo == 1 ? SUI : SUIF;
|
||||
var suitv = TopMenuNo == 1 ? SUIT : SUIFT;
|
||||
//디버그로그
|
||||
|
|
@ -52,9 +53,14 @@ namespace NP.Base
|
|||
var rtn = System.Threading.Tasks.Task.Run(async () => Console.WriteLine(await Dao.Log(
|
||||
new NP.Model.PageLog() { uno = SUserInfo.UserNo, uip = GetUserIP(), logsite = 1, loginfo = Request.Url.ToString() + Request.Params.ToString() })));
|
||||
}
|
||||
if (filterContext.HttpContext.Request.Cookies[TopMenuNo == 1 ? SUI : SUIF] != null)
|
||||
var newck = filterContext.HttpContext.Request.Cookies[suiv];
|
||||
if (TopMenuNo == 2 && newck == null)
|
||||
{
|
||||
var sui = DecString(filterContext.HttpContext.Request.Cookies[suiv].Value).Split('$');
|
||||
newck = filterContext.HttpContext.Request.Cookies[SUIFCROOM];
|
||||
}
|
||||
if (newck != null)
|
||||
{
|
||||
var sui = DecString(newck.Value).Split('$');
|
||||
//var sui = DecString("kMA1yvFp2GPs5aP8fUuRwYCWEamo5aHhb1Mlg6m+T9ef07yi4y+7K11xRQqyQHgI/gjzLYLNrqEIGd1GYUIKjZp5iLFJY+jdFoO95T9LrVdk6reEo8Yz4aToiMV67F3citUUG+Kuw1aUngmft+OKZg==x").Split('$');
|
||||
if (sui.Length > 8 && sui[0] == SUIDATE)
|
||||
{
|
||||
|
|
@ -312,8 +318,13 @@ namespace NP.Base
|
|||
{
|
||||
Response.Cookies[suitv].Value = null;
|
||||
}
|
||||
if (Request.Cookies[SUIFCROOM] != null)
|
||||
{
|
||||
Response.Cookies[SUIFCROOM].Value = null;
|
||||
}
|
||||
Response.Cookies[suiv].Expires = DateTime.Now.AddDays(-1);
|
||||
Response.Cookies[suitv].Expires = DateTime.Now.AddDays(-1);
|
||||
Response.Cookies[SUIFCROOM].Expires = DateTime.Now.AddDays(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,10 +30,11 @@ namespace NP.Base
|
|||
_sip = value;
|
||||
}
|
||||
}
|
||||
public const String SUI = "KFCFSUI";
|
||||
public const String SUIT = "KFCFSUIT";
|
||||
public const String SUIF = "KFCFSUIF";
|
||||
public const String SUIFT = "KFCFSUIFT";
|
||||
public const String SUI = "NPTECHSUI";
|
||||
public const String SUIT = "NPTECHSUIT";
|
||||
public const String SUIF = "NPTECHSUIF";
|
||||
public const String SUIFCROOM = "NPTECHSUIFCROOM";
|
||||
public const String SUIFT = "NPTECHSUIFT";
|
||||
private const String SUIDATE = "190517";
|
||||
|
||||
public NP.Model.SSUserInfo SUserInfo = new Model.SSUserInfo();
|
||||
|
|
@ -872,7 +873,7 @@ namespace NP.Base
|
|||
}
|
||||
protected void AuthCookie(bool isFront)
|
||||
{
|
||||
Response.Cookies.Add(new System.Web.HttpCookie(isFront?SUIF:SUI
|
||||
var c = new System.Web.HttpCookie(isFront ? SUIF : SUI
|
||||
, EncString(SUIDATE + "$" + SUserInfo.UserNo + "$" +
|
||||
SUserInfo.UserName.Replace("$", "") + "$" +
|
||||
SUserInfo.UserType + "$" +
|
||||
|
|
@ -880,9 +881,29 @@ namespace NP.Base
|
|||
SUserInfo.UserInfo + "$" +
|
||||
SUserInfo.LoginKey + "$" +
|
||||
DateTime.Now.ToString("yyMMddHHmmss") + "$" +
|
||||
SUserInfo.LoginIP)));
|
||||
|
||||
Response.Cookies.Add(new System.Web.HttpCookie(TopMenuNo == 1 ? SUIT : SUIFT, EncString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))));
|
||||
SUserInfo.LoginIP) + ";SameSite=None; Secure");
|
||||
Response.Cookies.Add(c);
|
||||
var c2 = new System.Web.HttpCookie(TopMenuNo == 1 ? SUIT : SUIFT, EncString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
|
||||
Response.Cookies.Add(c2);
|
||||
if (isFront)
|
||||
{
|
||||
AuthCookieCroom();
|
||||
}
|
||||
}
|
||||
protected void AuthCookieCroom()
|
||||
{
|
||||
var c = new System.Web.HttpCookie(SUIFCROOM
|
||||
, EncString(SUIDATE + "$" + SUserInfo.UserNo + "$" +
|
||||
SUserInfo.UserName.Replace("$", "") + "$" +
|
||||
SUserInfo.UserType + "$" +
|
||||
SUserInfo.ASNo + "$" +
|
||||
SUserInfo.UserInfo + "$" +
|
||||
SUserInfo.LoginKey + "$" +
|
||||
DateTime.Now.ToString("yyMMddHHmmss") + "$" +
|
||||
SUserInfo.LoginIP));
|
||||
Response.Cookies.Add(c);
|
||||
var c2 = new System.Web.HttpCookie(SUIFT, EncString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
|
||||
Response.Cookies.Add(c2);
|
||||
}
|
||||
protected bool IsEmail(string email)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -163,114 +163,49 @@ namespace NP.Base.Controllers
|
|||
[HttpPost]
|
||||
public JsonResult PayStart(VMPay vm)
|
||||
{
|
||||
vm.PPLog = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).First();
|
||||
vm.PayItems = new List<PayItem>() { };
|
||||
foreach (var d in vm.items.Split(';'))
|
||||
{
|
||||
var dd = d.Split(':');
|
||||
vm.PayItems.Add(new PayItem() { ptype = GetInt(dd[0]), itemno = GetLong(dd[1]), pcnt = GetInt(dd[2]), userno = vm.isgroup == 0 || dd[0] == "2" ? SUserInfo.UserNo : GetInt(dd[3]), isrebate = GetInt(dd[4]), fgno = dd[5] == "0" ? (Int64?)null : GetLong(dd[5]) });
|
||||
vm.PayItems.Add(new PayItem() { ptype = GetInt(dd[0]), itemno = GetLong(dd[1]), pcnt = GetInt(dd[2]), userno = vm.isgroup == 0 || dd[0] == "2" ? SUserInfo.UserNo : GetInt(dd[3]), isrebate = GetInt(dd[4]), fgno = dd[5] == "0" ? (Int64?)null : GetLong(dd[5]),
|
||||
rbank = vm.PPLog.rbankname, rbankaccnum = vm.PPLog.rbankacc, tbankuser = vm.PPLog.rbankowner });
|
||||
}
|
||||
if (vm.isgroup == 1)
|
||||
{
|
||||
//단체 검증
|
||||
//신청가능확인(기간,제한인원,동일강좌,유사강좌)
|
||||
var lects = Dao.Get<Lect>("pay.cmcheck.forgrouppay", new Hashtable() { { "cmno", vm.PayItems.Where(w => w.ptype == 0).First().itemno },
|
||||
{"usernos", "," + string.Join(",", vm.PayItems.Where(w=>w.ptype == 0).Select(s=>s.userno)) + "," },{ "userno", SUserInfo.UserNo} });
|
||||
if (lects.Count() < 1)
|
||||
{
|
||||
//수강신청기간이 아님
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "수강신청기간이 아닙니다.", obj = 0 });
|
||||
}
|
||||
else if(lects.First().quota !=0 && (vm.PayItems.Count() + lects.Where(w=>w.cmno == vm.PayItems.Where(s=>s.ptype==0).First().itemno ).Count()) > lects.First().quota)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "신청인원이 제한인원을 초과했습니다. [" + "제한인원 : "+ lects.First().quota + "명]", obj = 0 });
|
||||
}
|
||||
else if (lects.Where(w => w.ispaied == 1).Count() > 0)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "이미 개별 신청한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.ispaied == 1).Select(s => s.username)) + "]", obj = 0 });
|
||||
}
|
||||
else if (lects.First().quota != 0 && lects.Where(w => w.ispaied == 1).Count() + vm.PayItems.Where(w => w.ptype == 0).Count() >= lects.First().quota)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "제한인원을 초과한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.ispaied == 1).Select(s => s.username)) + "]", obj = 0 });
|
||||
}
|
||||
foreach (var pi in vm.PayItems.Where(w => w.ptype == 0))
|
||||
{
|
||||
pi.rstime = lects.Where(w => w.cmno == pi.itemno).First().rstime;
|
||||
pi.retime = lects.Where(w => w.cmno == pi.itemno).First().retime;
|
||||
pi.orgamt = lects.Where(w => w.cmno == pi.itemno).First().outfee;
|
||||
pi.discamt = lects.Where(w => w.cmno == pi.itemno).First().outfee - lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
pi.payamt = lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vm.ispaycert)
|
||||
if (vm.PayItems.Where(w => w.ptype == 0).Count() > 0)
|
||||
{
|
||||
//자격증강좌
|
||||
vm.PayItems = Dao.Get<PayItem>("pay.payitems.forcertpay", new System.Collections.Hashtable() { { "payno", vm.payno }, { "userno", SUserInfo.UserNo } });
|
||||
//개별 검증
|
||||
//신청가능확인(기간,제한인원)
|
||||
var lects = Dao.Get<Lect>("pay.cmcheck.forpay", new Hashtable() { { "cmno", vm.PayItems.Where(w=>w.ptype == 4).First().itemno }, { "userno", SUserInfo.UserNo } });
|
||||
//신청가능확인(기간,제한인원,동일강좌,유사강좌)
|
||||
var lects = Dao.Get<Lect>("pay.cmcheck.forpay", new Hashtable() { { "cmnos", string.Join(",", vm.PayItems.Where(w => w.ptype == 0).Select(s => s.itemno)) }, { "userno", SUserInfo.UserNo } });
|
||||
if (lects.Count() < 1)
|
||||
{
|
||||
//수강신청기간이 아님
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "수강신청기간이 아닙니다.", obj = 0 });
|
||||
}
|
||||
else if (lects.Where(w => w.status == 4).Count() != 1)
|
||||
else if (lects.Where(w => w.status > 0).Count() > 0)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "결제가능한 상태가 아닙니다.", obj = 0 });
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "이미 신청한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.status > 0).Select(s => s.cname)) + "]", obj = 0 });
|
||||
}
|
||||
else if (lects.Where(w => w.quota != 0 && (w.quota + 1) <= w.countlect).Count() > 0)
|
||||
else if (lects.Where(w => w.quota != 0 && w.quota <= w.countlect).Count() > 0)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "제한인원을 초과한 강좌입니다.", obj = 0 });
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "제한인원을 초과한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.quota != 0 && w.quota <= w.countlect).Select(s => s.cname)) + "]", obj = 0 });
|
||||
}
|
||||
else if (lects.Select(s => s.cmno).Count() != vm.PayItems.Where(w => w.ptype == 4).Count())
|
||||
else if (lects.Select(s => s.cmno).Count() != vm.PayItems.Where(w => w.ptype == 0).Count())
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "구매상품이 올바르지 않습니다.", obj = 0 });
|
||||
}
|
||||
}
|
||||
else if (vm.ispayexam)
|
||||
{
|
||||
vm.PayItems = Dao.Get<PayItem>("pay.payitems.forexampay", new System.Collections.Hashtable() { { "exno", vm.exno }, { "userno", SUserInfo.UserNo } });
|
||||
//개별 검증
|
||||
//신청가능확인(기간,제한인원)
|
||||
if (vm.PayItems.Where(w=>w.rstime < DateTime.Now && w.retime > DateTime.Now).Count() != 1)
|
||||
foreach (var pi in vm.PayItems.Where(w => w.ptype == 0))
|
||||
{
|
||||
//수강신청기간이 아님
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "신청기간이 아닙니다.", obj = 0 });
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vm.PayItems.Where(w => w.ptype == 0).Count() > 0)
|
||||
{
|
||||
//개별 검증
|
||||
//신청가능확인(기간,제한인원,동일강좌,유사강좌)
|
||||
var lects = Dao.Get<Lect>("pay.cmcheck.forpay", new Hashtable() { { "cmnos", string.Join(",", vm.PayItems.Where(w => w.ptype == 0).Select(s => s.itemno)) }, { "userno", SUserInfo.UserNo } });
|
||||
if (lects.Count() < 1)
|
||||
{
|
||||
//수강신청기간이 아님
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "수강신청기간이 아닙니다.", obj = 0 });
|
||||
}
|
||||
else if (lects.Where(w => w.status > 0).Count() > 0)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "이미 신청한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.status > 0).Select(s => s.cname)) + "]", obj = 0 });
|
||||
}
|
||||
else if (lects.Where(w => w.quota != 0 && w.quota <= w.countlect).Count() > 0)
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "제한인원을 초과한 강좌입니다. [" + string.Join(", ", lects.Where(w => w.quota != 0 && w.quota <= w.countlect).Select(s => s.cname)) + "]", obj = 0 });
|
||||
}
|
||||
else if (lects.Select(s => s.cmno).Count() != vm.PayItems.Where(w => w.ptype == 0).Count())
|
||||
{
|
||||
return JsonBack(new JsonRtn() { code = 1000, msg = "구매상품이 올바르지 않습니다.", obj = 0 });
|
||||
}
|
||||
foreach (var pi in vm.PayItems.Where(w => w.ptype == 0))
|
||||
{
|
||||
pi.rstime = lects.Where(w => w.cmno == pi.itemno).First().rstime;
|
||||
pi.retime = lects.Where(w => w.cmno == pi.itemno).First().retime;
|
||||
pi.orgamt = lects.Where(w => w.cmno == pi.itemno).First().outfee;
|
||||
pi.discamt = lects.Where(w => w.cmno == pi.itemno).First().outfee - lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
pi.payamt = lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
}
|
||||
pi.rstime = lects.Where(w => w.cmno == pi.itemno).First().rstime;
|
||||
pi.retime = lects.Where(w => w.cmno == pi.itemno).First().retime;
|
||||
pi.orgamt = lects.Where(w => w.cmno == pi.itemno).First().infee;
|
||||
pi.discamt = lects.Where(w => w.cmno == pi.itemno).First().infee - lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
pi.payamt = lects.Where(w => w.cmno == pi.itemno).First().payamt;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -292,86 +227,86 @@ namespace NP.Base.Controllers
|
|||
if (vm.ispaycert)
|
||||
{
|
||||
//자격증강좌 결제 시작
|
||||
vm.Pay = new Pay()
|
||||
{
|
||||
payno = vm.payno,
|
||||
ptype = vm.ptype,
|
||||
isdvr = vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? 1 : 0,
|
||||
uno = SUserInfo.UserNo,
|
||||
uip = GetUserIP(),
|
||||
userno = SUserInfo.UserNo,
|
||||
deliamt = vm.isdvr == 1 && vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? GetInt(GetConfig("deliveramt")) : 0
|
||||
};
|
||||
if (vm.Pay.ptype == 3)
|
||||
{
|
||||
//가상계좌 결제 시 ?일동안만 입금가능 / 수강신청중 빠른 것
|
||||
vm.Pay.paylimit = Convert.ToDateTime(DateTime.Now.AddDays(paylimitday).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
//if (vm.PayItems.Where(w => w.ptype == 4).First().retime < vm.Pay.paylimit)
|
||||
//{
|
||||
// vm.Pay.paylimit = Convert.ToDateTime(vm.PayItems.Where(w => w.ptype == 4).First().retime.Value.AddDays(1).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
//}
|
||||
vm.Pay.acceptmethod = "vbank(" + vm.Pay.paylimit.Value.ToString("yyyyMMddHHmm") + ")";
|
||||
}
|
||||
if (Dao.Save("pay.paycert.paystart", vm.Pay) > 0)
|
||||
{
|
||||
vm.Pay.payamt = vm.PayItems.Sum(s => s.payamt2);
|
||||
if (vm.Pay.isdvr == 1)
|
||||
{
|
||||
vm.Pay.payamt += GetInt(GetConfig("deliveramt"));
|
||||
try
|
||||
{
|
||||
vm.PayDVR.payno = vm.Pay.payno;
|
||||
vm.PayDVR.isdvr = vm.isdvr;
|
||||
vm.PayDVR.uno = SUserInfo.UserNo; vm.PayDVR.uip = GetUserIP();
|
||||
Dao.Save("pay.paydvr.in", vm.PayDVR);
|
||||
}
|
||||
catch (Exception exx) { SetError("배송정보입력오류: " + vm.Pay.payno + ": " + exx.Message); }
|
||||
}
|
||||
var pginfos = GetConfig("pginfo").Split('|');
|
||||
string timeTemp = "" + DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
|
||||
vm.Pay.timestamp = timeTemp.Split('.')[0];
|
||||
System.Security.Cryptography.SHA256Managed sha256Managed = new System.Security.Cryptography.SHA256Managed();
|
||||
vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", pginfos[4] + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
vm.Pay.oid2 = pginfos[4];
|
||||
return JsonBack(new JsonRtn() { code = 1000, obj = vm.Pay });
|
||||
}
|
||||
//vm.Pay = new Pay()
|
||||
//{
|
||||
// payno = vm.payno,
|
||||
// ptype = vm.ptype,
|
||||
// isdvr = vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? 1 : 0,
|
||||
// uno = SUserInfo.UserNo,
|
||||
// uip = GetUserIP(),
|
||||
// userno = SUserInfo.UserNo,
|
||||
// deliamt = vm.isdvr == 1 && vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? GetInt(GetConfig("deliveramt")) : 0
|
||||
//};
|
||||
//if (vm.Pay.ptype == 3)
|
||||
//{
|
||||
// //가상계좌 결제 시 ?일동안만 입금가능 / 수강신청중 빠른 것
|
||||
// vm.Pay.paylimit = Convert.ToDateTime(DateTime.Now.AddDays(paylimitday).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
// //if (vm.PayItems.Where(w => w.ptype == 4).First().retime < vm.Pay.paylimit)
|
||||
// //{
|
||||
// // vm.Pay.paylimit = Convert.ToDateTime(vm.PayItems.Where(w => w.ptype == 4).First().retime.Value.AddDays(1).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
// //}
|
||||
// vm.Pay.acceptmethod = "vbank(" + vm.Pay.paylimit.Value.ToString("yyyyMMddHHmm") + ")";
|
||||
//}
|
||||
//if (Dao.Save("pay.paycert.paystart", vm.Pay) > 0)
|
||||
//{
|
||||
// vm.Pay.payamt = vm.PayItems.Sum(s => s.payamt2);
|
||||
// if (vm.Pay.isdvr == 1)
|
||||
// {
|
||||
// vm.Pay.payamt += GetInt(GetConfig("deliveramt"));
|
||||
// try
|
||||
// {
|
||||
// vm.PayDVR.payno = vm.Pay.payno;
|
||||
// vm.PayDVR.isdvr = vm.isdvr;
|
||||
// vm.PayDVR.uno = SUserInfo.UserNo; vm.PayDVR.uip = GetUserIP();
|
||||
// Dao.Save("pay.paydvr.in", vm.PayDVR);
|
||||
// }
|
||||
// catch (Exception exx) { SetError("배송정보입력오류: " + vm.Pay.payno + ": " + exx.Message); }
|
||||
// }
|
||||
// var pginfos = GetConfig("pginfo").Split('|');
|
||||
// string timeTemp = "" + DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
|
||||
// vm.Pay.timestamp = timeTemp.Split('.')[0];
|
||||
// System.Security.Cryptography.SHA256Managed sha256Managed = new System.Security.Cryptography.SHA256Managed();
|
||||
// vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", pginfos[4] + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
// vm.Pay.oid2 = pginfos[4];
|
||||
// return JsonBack(new JsonRtn() { code = 1000, obj = vm.Pay });
|
||||
//}
|
||||
}
|
||||
else if (vm.ispayexam)
|
||||
{
|
||||
//자격증시험 결제 진행
|
||||
vm.Pay = new Pay()
|
||||
{
|
||||
ptype = vm.ptype,
|
||||
isexam = 1,
|
||||
uno = SUserInfo.UserNo,
|
||||
uip = GetUserIP(),
|
||||
ispg = 1,
|
||||
userno = SUserInfo.UserNo,
|
||||
orgamt = vm.PayItems.Sum(s => s.orgamt),
|
||||
discamt = vm.PayItems.Sum(s => s.discamt),
|
||||
payamt = vm.PayItems.Sum(s => s.payamt),
|
||||
PIs = vm.PayItems
|
||||
};
|
||||
if (vm.Pay.ptype == 3)
|
||||
{
|
||||
//가상계좌 결제 시 ?일동안만 입금가능 / 수강신청중 빠른 것
|
||||
vm.Pay.paylimit = Convert.ToDateTime(DateTime.Now.AddDays(paylimitday).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
//if (vm.PayItems.Where(w => w.retime != null && w.retime < vm.Pay.paylimit).Count() > 0)
|
||||
//{
|
||||
// vm.Pay.paylimit = Convert.ToDateTime(vm.PayItems.Where(w => w.retime != null && w.retime < vm.Pay.paylimit).Min(m => m.retime).Value.AddDays(1).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
//}
|
||||
vm.Pay.acceptmethod = "vbank(" + vm.Pay.paylimit.Value.ToString("yyyyMMddHHmm") + ")";
|
||||
}
|
||||
if (Dao.PayIn(vm.Pay) > 0)
|
||||
{
|
||||
var pginfos = GetConfig("pginfo").Split('|');
|
||||
string timeTemp = "" + DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
|
||||
vm.Pay.timestamp = timeTemp.Split('.')[0];
|
||||
System.Security.Cryptography.SHA256Managed sha256Managed = new System.Security.Cryptography.SHA256Managed();
|
||||
vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", pginfos[4] + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
vm.Pay.oid2 = pginfos[4];
|
||||
return JsonBack(new JsonRtn() { code = 1000, obj = vm.Pay });
|
||||
}
|
||||
//vm.Pay = new Pay()
|
||||
//{
|
||||
// ptype = vm.ptype,
|
||||
// isexam = 1,
|
||||
// uno = SUserInfo.UserNo,
|
||||
// uip = GetUserIP(),
|
||||
// ispg = 1,
|
||||
// userno = SUserInfo.UserNo,
|
||||
// orgamt = vm.PayItems.Sum(s => s.orgamt),
|
||||
// discamt = vm.PayItems.Sum(s => s.discamt),
|
||||
// payamt = vm.PayItems.Sum(s => s.payamt),
|
||||
// PIs = vm.PayItems
|
||||
//};
|
||||
//if (vm.Pay.ptype == 3)
|
||||
//{
|
||||
// //가상계좌 결제 시 ?일동안만 입금가능 / 수강신청중 빠른 것
|
||||
// vm.Pay.paylimit = Convert.ToDateTime(DateTime.Now.AddDays(paylimitday).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
// //if (vm.PayItems.Where(w => w.retime != null && w.retime < vm.Pay.paylimit).Count() > 0)
|
||||
// //{
|
||||
// // vm.Pay.paylimit = Convert.ToDateTime(vm.PayItems.Where(w => w.retime != null && w.retime < vm.Pay.paylimit).Min(m => m.retime).Value.AddDays(1).ToString("yyyy-MM-dd")).AddSeconds(-1);
|
||||
// //}
|
||||
// vm.Pay.acceptmethod = "vbank(" + vm.Pay.paylimit.Value.ToString("yyyyMMddHHmm") + ")";
|
||||
//}
|
||||
//if (Dao.PayIn(vm.Pay) > 0)
|
||||
//{
|
||||
// var pginfos = GetConfig("pginfo").Split('|');
|
||||
// string timeTemp = "" + DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
|
||||
// vm.Pay.timestamp = timeTemp.Split('.')[0];
|
||||
// System.Security.Cryptography.SHA256Managed sha256Managed = new System.Security.Cryptography.SHA256Managed();
|
||||
// vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", pginfos[4] + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
// vm.Pay.oid2 = pginfos[4];
|
||||
// return JsonBack(new JsonRtn() { code = 1000, obj = vm.Pay });
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -382,19 +317,22 @@ namespace NP.Base.Controllers
|
|||
uno = SUserInfo.UserNo,
|
||||
uip = GetUserIP(),
|
||||
ispg = 1,
|
||||
isexam = vm.ispaycart?2:0,
|
||||
isexam = vm.ispaycart ? 2 : 0,
|
||||
isgroup = vm.isgroup,
|
||||
userno = SUserInfo.UserNo,
|
||||
orgamt = vm.PayItems.Sum(s => s.orgamt),
|
||||
discamt = vm.PayItems.Sum(s => s.discamt),
|
||||
deliamt = vm.isdvr == 1 && vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? GetInt(GetConfig("deliveramt")) : 0,
|
||||
payamt = vm.PayItems.Sum(s => s.payamt) + (vm.isdvr == 1 && vm.PayItems.Where(w => w.ptype == 2).Count() > 0 ? GetInt(GetConfig("deliveramt")) : 0),
|
||||
iscashrct = vm.ptype == 1 ? 0 : vm.iscashrct,
|
||||
cashrcthp = vm.ptype == 1 ? null : vm.cashrcthp,
|
||||
pplno = vm.pplno,
|
||||
PIs = vm.PayItems
|
||||
};
|
||||
if (vm.Pay.isdvr == 1)
|
||||
{
|
||||
vm.PayDVR.isdvr = vm.isdvr;
|
||||
vm.Pay.PayDVR = vm.PayDVR;
|
||||
//vm.PayDVR.isdvr = vm.isdvr;
|
||||
//vm.Pay.PayDVR = vm.PayDVR;
|
||||
}
|
||||
if (vm.Pay.ptype == 3 && vm.Pay.payamt > 0)
|
||||
{
|
||||
|
|
@ -421,8 +359,8 @@ namespace NP.Base.Controllers
|
|||
string timeTemp = "" + DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
|
||||
vm.Pay.timestamp = timeTemp.Split('.')[0];
|
||||
System.Security.Cryptography.SHA256Managed sha256Managed = new System.Security.Cryptography.SHA256Managed();
|
||||
vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", pginfos[4] + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
vm.Pay.oid2 = pginfos[4];
|
||||
vm.Pay.signature = ComputeHash(string.Format("oid={0}&price={1}×tamp={2}", GetConfig("PAYMENT_CLASSIFICATION") + vm.Pay.payno, vm.Pay.payamt, vm.Pay.timestamp));
|
||||
vm.Pay.oid2 = GetConfig("PAYMENT_CLASSIFICATION");
|
||||
return JsonBack(new JsonRtn() { code = 1000, obj = vm.Pay });
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -933,8 +933,8 @@ create table payrfd (
|
|||
rfdno bigint auto_increment not null
|
||||
,payno bigint not null
|
||||
,rtext varchar (500)
|
||||
,bankname varchar (50)
|
||||
,bankno varbinary (200)
|
||||
,bankname varchar (50)
|
||||
,bankno varbinary (200)
|
||||
,bankowner varchar (50)
|
||||
,isowner tinyint not null
|
||||
,rstatus tinyint not null
|
||||
|
|
@ -943,8 +943,8 @@ create table payrfd (
|
|||
,rreason tinyint not null
|
||||
,ruser varchar (50) null
|
||||
,rphone varbinary (200) null
|
||||
,fgnor bigint not null
|
||||
,fgnob bigint not null
|
||||
,fgnor bigint null
|
||||
,fgnob bigint null
|
||||
,rback varchar(500) null
|
||||
,cdt datetime not null,cno bigint not NULL,udt datetime not null,uno bigint not NULL,uip varchar(50) not NULL
|
||||
,primary key(rfdno));
|
||||
|
|
|
|||
|
|
@ -221,13 +221,13 @@
|
|||
<select id="pay.cmcheck.forpay" parameterClass="hashtable" resultClass="lect">
|
||||
select a.cmno,a.cname,a.quota,a.rstime,a.retime
|
||||
,b.status
|
||||
,a.infee,a.outfee,case when ua.isjoin=1 then a.infee else a.outfee end payamt
|
||||
,a.infee,a.outfee,case when ua.isjoin=1 then a.infee else a.infee end payamt
|
||||
,count(d.userno) countlect
|
||||
from cm a
|
||||
inner join users u on u.userno=#userno#
|
||||
left outer join assign ua on ua.asno=u.asno
|
||||
left outer join lect b on b.cmno=a.cmno and b.userno =#userno# and b.status < 5 and b.ischanged=0
|
||||
left outer join lect c on c.cmno=a.cmno and c.status < 5 and c.ischanged=0
|
||||
left outer join lect c on c.cmno=a.cmno and c.status in (1,2,3,4,6) and c.ischanged=0
|
||||
left outer join users d on d.userno=c.userno and d.status=1
|
||||
where
|
||||
<isNotNull property="cmnos">a.cmno in($cmnos$)</isNotNull>
|
||||
|
|
@ -238,20 +238,20 @@
|
|||
</select>
|
||||
<insert id="pay.pay.pgin" parameterClass="pay">
|
||||
insert into pay(ptype,ispg,isgroup,isexam,userno,username,pstatus,rstatus
|
||||
,refunding,paylimit,payoktime,pgkey,orgamt,discamt,deliamt,isrefunddvr,payamt,refundamt,isdvr,<include refid="sql.inc"></include>)
|
||||
,refunding,paylimit,payoktime,pgkey,orgamt,discamt,deliamt,isrefunddvr,payamt,refundamt,isdvr,iscashrct,cashrcthp,pplno,<include refid="sql.inc"></include>)
|
||||
select #ptype#,#ispg#,#isgroup#,#isexam#,a.userno,a.username,case when #ptype# = 6 then 1 else 0 end,0
|
||||
,#refunding#,#paylimit#,case when #ptype# = 6 then now() else #payoktime# end,#pgkey#,#orgamt#,#discamt#,#deliamt#,#isrefunddvr#,#payamt#,#refundamt#,#isdvr#,<include refid="sql.inv"></include>
|
||||
,#refunding#,#paylimit#,case when #ptype# = 6 then now() else #payoktime# end,#pgkey#,#orgamt#,#discamt#,#deliamt#,#isrefunddvr#,#payamt#,#refundamt#,#isdvr#,#iscashrct#,HEX(AES_ENCRYPT(#cashrcthp#, <include refid="sql.digest"></include>)),#pplno#,<include refid="sql.inv"></include>
|
||||
from users a
|
||||
where a.userno=#userno#
|
||||
<selectKey type="post" property="payno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey>
|
||||
</insert>
|
||||
<update id="pay.payitem.pgin" parameterClass="pay">
|
||||
insert into payitem (payno,ptype,pcno,itemno,userno,pstatus,rstatus
|
||||
,pcnt,orgamt,discamt,payamt,payamtcash,payamtcard,refundamt,refundtime,refundtimereal,refundinfo,isrebate,fgno,<include refid="sql.inc"></include>)
|
||||
,pcnt,orgamt,discamt,payamt,payamtcash,payamtcard,refundamt,refundtime,refundtimereal,refundinfo,isrebate,rbank,rbankaccnum,tbankuser,fgno,<include refid="sql.inc"></include>)
|
||||
select #payno#,a.ptype,null,a.itemno,a.userno,case when #ptype# = 6 then 1 else 0 end,0
|
||||
,a.pcnt,a.orgamt,a.discamt,a.payamt,0,0,0,null,null,null,a.isrebate,ifnull(b.fgno,a.fgno),<include refid="sql.inv"></include>
|
||||
,a.pcnt,a.orgamt,a.discamt,a.payamt,0,0,0,null,null,null,a.isrebate,a.rbank,HEX(AES_ENCRYPT(a.rbankaccnum, <include refid="sql.digest"></include>)),a.tbankuser,ifnull(b.fgno,a.fgno),<include refid="sql.inv"></include>
|
||||
from (
|
||||
<iterate property="PIs" open="" conjunction="union all" close=""> select #PIs[].ptype# ptype,#PIs[].itemno# itemno,#PIs[].userno# userno,#PIs[].pcnt# pcnt,#PIs[].orgamt# orgamt,#PIs[].discamt# discamt,#PIs[].payamt# payamt,#PIs[].isrebate# isrebate,#PIs[].fgno# fgno </iterate>
|
||||
<iterate property="PIs" open="" conjunction="union all" close=""> select #PIs[].ptype# ptype,#PIs[].itemno# itemno,#PIs[].userno# userno,#PIs[].pcnt# pcnt,#PIs[].orgamt# orgamt,#PIs[].discamt# discamt,#PIs[].payamt# payamt,#PIs[].isrebate# isrebate,#PIs[].rbank# rbank,#PIs[].rbankaccnum# rbankaccnum,#PIs[].tbankuser# tbankuser,#PIs[].fgno# fgno </iterate>
|
||||
) a
|
||||
left outer join paycart b on #isexam# = 2 and a.ptype=0 and b.ptype=0 and b.itemno=a.itemno and b.userno=#userno# and b.status=1 and b.ispay=1
|
||||
</update>
|
||||
|
|
@ -820,7 +820,7 @@
|
|||
where payno=#payno# and isunpay=1;
|
||||
</update>
|
||||
<select id="pay.pplogs" parameterClass="hashtable" resultClass="pplog">
|
||||
select a.pplno,a.isready,a.cmno,a.cmisno
|
||||
select a.pplno,a.isready,a.cmno,a.cmisno,a.isrebate,a.rbankname,a.rbankacc,a.rbankowner
|
||||
,b.payno
|
||||
from pplog a
|
||||
left outer join pay b on b.pplno=a.pplno
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ using NP.Model;
|
|||
using NP.Base;
|
||||
using System.Collections;
|
||||
|
||||
using XPayClientNet;
|
||||
|
||||
namespace NP.FO.Controllers
|
||||
{
|
||||
public class CourseController : FOOpenBaseController
|
||||
|
|
@ -836,17 +838,17 @@ namespace NP.FO.Controllers
|
|||
{
|
||||
return Redirect("/");
|
||||
}
|
||||
var ppl = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
||||
if (ppl == null)
|
||||
vm.PPLog = Dao.Get<PPLog>("pay.pplogs", new Hashtable() { { "pplno", vm.pplno }, { "userno", SUserInfo.UserNo } }).FirstOrDefault();
|
||||
if (vm.PPLog == null)
|
||||
{
|
||||
return Redirect("/");
|
||||
}
|
||||
if (ppl.payno > 0)
|
||||
if (vm.PPLog.payno > 0)
|
||||
{
|
||||
//새로고침?
|
||||
return RedirectPermanent("/Course/ApplyComplete?payno=" + ppl.payno);
|
||||
return RedirectPermanent("/Course/ApplyComplete?payno=" + vm.PPLog.payno);
|
||||
}
|
||||
if (ppl.isready == 1)
|
||||
if (vm.PPLog.isready == 1)
|
||||
{
|
||||
//대기접수로 결제 및 신청데이터 생성
|
||||
var payitems = new List<PayItem>() { };
|
||||
|
|
@ -860,12 +862,12 @@ namespace NP.FO.Controllers
|
|||
pcnt = 1,
|
||||
payamt = 0,
|
||||
isready = 1,
|
||||
cmisno = ppl.cmisno,
|
||||
cmisno = vm.PPLog.cmisno,
|
||||
uno = SUserInfo.UserNo,
|
||||
uip = uip
|
||||
});
|
||||
//정가확인
|
||||
var cms = Dao.Get<CM>("cm.cms.forpay", new Hashtable() { { "userno", SUserInfo.UserNo }, { "cmno", ppl.cmno } });
|
||||
var cms = Dao.Get<CM>("cm.cms.forpay", new Hashtable() { { "userno", SUserInfo.UserNo }, { "cmno", vm.PPLog.cmno } });
|
||||
var pi = payitems.First();
|
||||
pi.orgamt = cms.Where(w => w.cmno == pi.itemno).First().fee;
|
||||
var pay = new Pay()
|
||||
|
|
@ -891,7 +893,8 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
return Redirect("/");
|
||||
}
|
||||
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", ppl.cmno } }).First();
|
||||
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PPLog.cmno } }).First();
|
||||
vm.User = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).First();
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
|
|
@ -903,10 +906,183 @@ namespace NP.FO.Controllers
|
|||
}
|
||||
vm.PayItem = Dao.Get<PayItem>("pay.payresult", new Hashtable() { { "payno", vm.payno }, { "userno", SUserInfo.UserNo } }).First();
|
||||
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PayItem.itemno } }).FirstOrDefault();
|
||||
//여기해보자
|
||||
|
||||
return View(vm);
|
||||
}
|
||||
public ActionResult XpayREQ(VMPay vm)
|
||||
{
|
||||
ViewBag.ismain = true;
|
||||
string configPath = GetConfig("lgdacomConfigPath");
|
||||
string CST_PLATFORM = GetConfig("CST_PLATFORM");
|
||||
string CST_MID = GetConfig("CST_MID");
|
||||
string LGD_MID = (("test".Equals(CST_PLATFORM.Trim())) ? "t" : "") + CST_MID;
|
||||
string LGD_TIMESTAMP = "";
|
||||
string LGD_HASHDATA = "";
|
||||
string LGD_OID = Request["LGD_OID"];
|
||||
string LGD_AMOUNT = Request["LGD_AMOUNT"];
|
||||
vm.payParams = new Hashtable();
|
||||
vm.payParams.Add("CST_PLATFORM", CST_PLATFORM);
|
||||
vm.payParams.Add("CST_MID", CST_MID);
|
||||
vm.payParams.Add("LGD_MID", LGD_MID);
|
||||
vm.payParams.Add("LGD_OID", LGD_OID);
|
||||
vm.payParams.Add("LGD_BUYER", Request["LGD_BUYER"]);
|
||||
vm.payParams.Add("LGD_PRODUCTINFO", Request["LGD_PRODUCTINFO"]);
|
||||
vm.payParams.Add("LGD_AMOUNT", LGD_AMOUNT);
|
||||
vm.payParams.Add("LGD_BUYEREMAIL", Request["LGD_BUYEREMAIL"]);
|
||||
vm.payParams.Add("LGD_RETURNURL", (GetConfig("fronturl") + "/Course/XpayReturnURL"));
|
||||
vm.payParams.Add("LGD_ENCODING", GetConfig("LGD_ENCODING"));
|
||||
vm.payParams.Add("LGD_ENCODING_NOTEURL", GetConfig("LGD_ENCODING"));
|
||||
vm.payParams.Add("LGD_ENCODING_RETURNURL", GetConfig("LGD_ENCODING"));
|
||||
vm.payParams.Add("LGD_BACKBTN_YN", GetConfig("LGD_BACKBTN_YN"));
|
||||
vm.payParams.Add("LGD_CASNOTEURL", GetConfig("LGD_CASNOTEURL"));
|
||||
vm.payParams.Add("LGD_AUTOFILLYN_BUYER", GetConfig("LGD_AUTOFILLYN_BUYER"));
|
||||
vm.payParams.Add("LGD_ESCROW_USEYN", GetConfig("LGD_ESCROW_USEYN"));
|
||||
vm.payParams.Add("LGD_CASHRECEIPTYN", GetConfig("LGD_CASHRECEIPTYN"));
|
||||
vm.payParams.Add("LGD_DOMAIN_URL", "xpayvvip");
|
||||
vm.payParams.Add("LGD_CUSTOM_PROCESSTYPE", "TWOTR");
|
||||
if (Request["ptype"] == "3")
|
||||
{
|
||||
vm.payParams.Add("LGD_CLOSEDATE", Request["LGD_CLOSEDATE"]);
|
||||
}
|
||||
String OSTYPE = Request["LGD_OSTYPE_CHECK"];
|
||||
vm.payParams.Add("LGD_OSTYPE_CHECK", OSTYPE);
|
||||
vm.payParams.Add("LGD_CUSTOM_SWITCHINGTYPE", Request["LGD_CUSTOM_SWITCHINGTYPE"]);
|
||||
vm.payParams.Add("LGD_VERSION", Request["LGD_VERSION"]);
|
||||
vm.payParams.Add("LGD_CUSTOM_SKIN", Request["LGD_CUSTOM_SKIN"]);
|
||||
if (OSTYPE == "P")
|
||||
{
|
||||
vm.payParams.Add("LGD_WINDOW_TYPE", Request["LGD_WINDOW_TYPE"]);
|
||||
vm.payParams.Add("LGD_CUSTOM_USABLEPAY", Request["LGD_CUSTOM_USABLEPAY"]);
|
||||
}
|
||||
else if (OSTYPE == "M")
|
||||
{
|
||||
vm.payParams.Add("CST_WINDOW_TYPE", Request["CST_WINDOW_TYPE"]);
|
||||
vm.payParams.Add("LGD_PCVIEWYN", Request["LGD_PCVIEWYN"]);
|
||||
vm.payParams.Add("LGD_CUSTOM_FIRSTPAY", Request["LGD_CUSTOM_FIRSTPAY"]);
|
||||
|
||||
//iOS 연동시 필수
|
||||
vm.payParams.Add("LGD_MPILOTTEAPPCARDWAPURL", ""); //iOS 롯데앱카드 스키마 등록
|
||||
|
||||
/*
|
||||
****************************************************
|
||||
* 신용카드 ISP(국민/BC)결제에만 적용 - BEGIN
|
||||
****************************************************
|
||||
*/
|
||||
vm.payParams.Add("LGD_KVPMISPWAPURL", "");
|
||||
vm.payParams.Add("LGD_KVPMISPCANCELURL", "");
|
||||
|
||||
/*
|
||||
****************************************************
|
||||
* 신용카드 ISP(국민/BC)결제에만 적용 - END
|
||||
****************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************
|
||||
* 계좌이체 결제에만 적용 - BEGIN
|
||||
****************************************************
|
||||
*/
|
||||
vm.payParams.Add("LGD_MTRANSFERWAPURL", "");
|
||||
vm.payParams.Add("LGD_MTRANSFERCANCELURL", "");
|
||||
|
||||
/*
|
||||
****************************************************
|
||||
* 계좌이체 결제에만 적용 - END
|
||||
****************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************
|
||||
* 모바일 OS별 ISP(국민/비씨), 계좌이체 결제 구분 값
|
||||
****************************************************
|
||||
- 안드로이드: A (디폴트)
|
||||
- iOS: N
|
||||
- iOS일 경우, 반드시 N으로 값을 수정
|
||||
*/
|
||||
vm.payParams.Add("LGD_KVPMISPAUTOAPPYN", Request["LGD_KVPMISPAUTOAPPYN"]);
|
||||
vm.payParams.Add("LGD_MTRANSFERAUTOAPPYN", Request["LGD_MTRANSFERAUTOAPPYN"]);
|
||||
}
|
||||
|
||||
// (1) XpayClient의 사용을 위한 xpay 객체 생성
|
||||
XPayClient xpay = new XPayClient();
|
||||
|
||||
// (2) Init: XPayClient 초기화(환경설정 파일 로드)
|
||||
// configPath: 설정파일
|
||||
// CST_PLATFORM: - test, service 값에 따라 lgdacom.conf의 test_url(test) 또는 url(srvice) 사용
|
||||
// - test, service 값에 따라 테스트용 또는 서비스용 아이디 생성
|
||||
xpay.Init(configPath, CST_PLATFORM);
|
||||
|
||||
/*
|
||||
*************************************************
|
||||
* 2. MD5 해쉬암호화 (수정하지 마세요) - BEGIN
|
||||
*
|
||||
* MD5 해쉬암호화는 거래 위변조를 막기위한 방법입니다.
|
||||
*************************************************
|
||||
*/
|
||||
try
|
||||
{
|
||||
// (3) Init_TX: 메모리에 mall.conf, lgdacom.conf 할당 및 트랜잭션의 고유한 키 TXID 생성
|
||||
xpay.Init_TX(LGD_MID);
|
||||
LGD_TIMESTAMP = xpay.GetTimeStamp();
|
||||
LGD_HASHDATA = xpay.GetHashData(LGD_MID, LGD_OID, LGD_AMOUNT, LGD_TIMESTAMP);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
//LGD_HASHDATA 추출 오류
|
||||
SetError(err.Message);
|
||||
return null;
|
||||
}
|
||||
|
||||
/*
|
||||
*************************************************
|
||||
* 2. MD5 해쉬암호화 (수정하지 마세요) - END
|
||||
*************************************************
|
||||
*/
|
||||
|
||||
vm.payParams.Add("LGD_TIMESTAMP", LGD_TIMESTAMP);
|
||||
vm.payParams.Add("LGD_HASHDATA", LGD_HASHDATA);
|
||||
|
||||
//수정 불가 ( 인증 후 자동 셋팅 )
|
||||
vm.payParams.Add("LGD_RESPCODE", "");
|
||||
vm.payParams.Add("LGD_RESPMSG", "");
|
||||
vm.payParams.Add("LGD_PAYKEY", "");
|
||||
|
||||
//nptech 추가 파라미터
|
||||
vm.payParams.Add("items", Request["items"]);
|
||||
vm.payParams.Add("rsMsg", "");
|
||||
|
||||
Session.Add("PAYREQ_MAP", vm.payParams);
|
||||
|
||||
return View(vm);
|
||||
}
|
||||
public ActionResult XpayReturnURL(VMPay vm)
|
||||
{
|
||||
ViewBag.ismain = true;
|
||||
String LGD_RESPCODE = Request["LGD_RESPCODE"];
|
||||
String LGD_RESPMSG = Request["LGD_RESPMSG"];
|
||||
|
||||
//S053 사용자가 결제를 취소했습니다.
|
||||
vm.payParams = new Hashtable();
|
||||
vm.payParams = (Hashtable)Session["PAYREQ_MAP"];
|
||||
vm.payParams.Remove("LGD_RESPCODE");
|
||||
vm.payParams.Remove("LGD_RESPMSG");
|
||||
vm.payParams.Add("LGD_RESPCODE", LGD_RESPCODE);
|
||||
vm.payParams.Add("LGD_RESPMSG", LGD_RESPMSG);
|
||||
|
||||
if (LGD_RESPCODE == "0000")
|
||||
{
|
||||
vm.payParams.Remove("LGD_PAYKEY");
|
||||
vm.payParams.Add("LGD_PAYKEY", Request["LGD_PAYKEY"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
vm.payParams.Remove("rsMsg");
|
||||
vm.payParams.Add("rsMsg", "[" + LGD_RESPCODE + "]" + LGD_RESPMSG);
|
||||
SetError("[" + LGD_RESPCODE + "]" + LGD_RESPMSG);
|
||||
}
|
||||
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,8 +160,9 @@
|
|||
<Private>True</Private>
|
||||
<HintPath>..\packages\Antlr.3.4.1.9004\lib\Antlr3.Runtime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="XPayClientNet">
|
||||
<HintPath>..\..\LMS_TSTI\Source\Reference\XPayClientNet.dll</HintPath>
|
||||
<Reference Include="XPayClientNet, Version=2.0.1.9, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\References\XPayClientNet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
@ -661,6 +662,9 @@
|
|||
<Content Include="Views\My\MyAssInfo.cshtml" />
|
||||
<Content Include="Views\Course\ApplyEdu.cshtml" />
|
||||
<Content Include="Views\Course\ApplyComplete.cshtml" />
|
||||
<Content Include="Views\Course\ApplyPay.cshtml" />
|
||||
<Content Include="Views\Course\XpayREQ.cshtml" />
|
||||
<Content Include="Views\Course\XpayReturnURL.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,175 @@
|
|||
@model NP.Model.VMCourse
|
||||
<form id="mform" name="mform" method="post" action="/Course/XpayREQ">
|
||||
<input type="hidden" name="cmno" id="cmno" value="@Model.cmno" /> @*강좌번호*@
|
||||
<input type="hidden" name="stringval" id="stringval" value="@Model.stringval" /> @*법정교육/기타교육*@
|
||||
<input type="hidden" name="stringval2" id="stringval2" value="@Model.stringval2" />@*교육유형*@
|
||||
<input type="hidden" name="stringval3" id="stringval3" value="@Model.stringval3" />@*기술인분류*@
|
||||
<input type="hidden" name="stringval4" id="stringval4" value="@Model.stringval4" />@*교육목적*@
|
||||
<input type="hidden" name="stringval5" id="stringval5" value="@Model.stringval5" />@*등급*@
|
||||
<input type="hidden" name="stringval6" id="stringval6" value="@Model.stringval6" />@*직무분야*@
|
||||
<input type="hidden" name="cmisno" id="cmisno" />
|
||||
<input type="hidden" name="isrebate" id="isrebate" />
|
||||
<input type="hidden" name="applicableCM" id="applicableCM" />
|
||||
<h4 class="clsTitle">신청강좌</h4>
|
||||
<ul class="smtList mt0">
|
||||
<li>
|
||||
<ul class="smtlChk">
|
||||
<li>
|
||||
@if (Model.CM.cshape == 0)
|
||||
{
|
||||
<p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.rsrename) (@(Model.CM.rsretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원</span></label></p>
|
||||
}
|
||||
else if (Model.CM.cshape == 1)
|
||||
{
|
||||
<p><label>@(Model.CM.tseq)기 <span class='blu'>[@(Model.CM.studyplacename) 교육장] </span><span class='gry'>@Model.CM.rsrename (@(Model.CM.rsretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원</span></label></p>
|
||||
}
|
||||
else if (Model.CM.cshape == 2)
|
||||
{
|
||||
<p><label>@(Model.CM.tseq)기 <span class='gry'>@(Model.CM.rsrename) (@(Model.CM.rsretimeToDay)일) </span> @Model.CM.cname<span class='red'> | @(Model.CM.infee)원 ※ 집체교육 선택 필수</span></label></p>
|
||||
}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="apyCost">
|
||||
결제금액 : <span class="red">@Model.CM.infee</span> 원
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4 class="clsTitle">결제방법</h4>
|
||||
<ul class="apyRdo">
|
||||
<li><input type="radio" name="ptype" id="pay0101" value="1"><label for="pay0101">신용카드</label></li>
|
||||
<li><input type="radio" name="ptype" id="pay0102" value="3"><label for="pay0102">무통장입금(가상계좌)</label></li>
|
||||
</ul>
|
||||
<div id="cashbox" style="display:none">
|
||||
<h4 class="clsTitle">현금영수증 발행여부</h4>
|
||||
<ul class="apyRdo">
|
||||
<li><input type="radio" name="iscashrct" id="pay0201" value="0"><label for="pay0201">미발행</label></li>
|
||||
<li>
|
||||
<input type="radio" name="iscashrct" id="pay0202" value="1"><label for="pay0202">발행<span class="cashnot hide"> (핸드폰번호 :</span></label>
|
||||
<ul class="apyPh cashnot hide">
|
||||
<li>
|
||||
<select id="hp1">
|
||||
<option value="">선택</option>
|
||||
<option value="010">010</option>
|
||||
</select>
|
||||
</li>
|
||||
<li>-</li>
|
||||
<li><input type="tel" id="hp2" maxlength="4" /></li>
|
||||
<li>-</li>
|
||||
<li><input type="tel" id="hp3" maxlength="4" /></li>
|
||||
</ul>
|
||||
<span class="cashnot hide">)</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="clsBtn society">
|
||||
<li><a href="#" onclick="save()">수강신청</a></li>
|
||||
<li><a href="/">취소</a></li>
|
||||
</ul>
|
||||
@Html.HiddenFor(m => m.payno)
|
||||
@Html.HiddenFor(m => m.exno)
|
||||
@Html.Hidden("pplno", Model.PPLog.pplno)
|
||||
<input type="hidden" name="cashrcthp" id="cashrcthp" />
|
||||
<input type="hidden" name="items" value="@string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}", 0, Model.CM.cmno, 1, ViewBag.SSUserNo, Model.PPLog.isrebate, 0, "")" />
|
||||
|
||||
<!-- Xpay 결제 start -->
|
||||
<input type="hidden" name="LGD_CLOSEDATE" id="LGD_CLOSEDATE" value="">
|
||||
<input type="hidden" name="LGD_OID" id="LGD_OID" value="">
|
||||
<input type="hidden" name="LGD_AMOUNT" id="LGD_AMOUNT" value="">
|
||||
<input type="hidden" name="LGD_OSTYPE_CHECK" id="LGD_OSTYPE_CHECK" value="">
|
||||
<input type="hidden" name="LGD_CUSTOM_SWITCHINGTYPE" id="LGD_CUSTOM_SWITCHINGTYPE" value="">
|
||||
<input type="hidden" name="LGD_VERSION" id="LGD_VERSION" value="">
|
||||
<input type="hidden" name="LGD_CUSTOM_SKIN" id="LGD_CUSTOM_SKIN" value="">
|
||||
<input type="hidden" name="CST_WINDOW_TYPE" id="CST_WINDOW_TYPE" value="">
|
||||
<input type="hidden" name="LGD_PCVIEWYN" id="LGD_PCVIEWYN" value="">
|
||||
<input type="hidden" name="LGD_CUSTOM_FIRSTPAY" id="LGD_CUSTOM_FIRSTPAY" value="">
|
||||
<input type="hidden" name="LGD_KVPMISPAUTOAPPYN" id="LGD_KVPMISPAUTOAPPYN" value="">
|
||||
<input type="hidden" name="LGD_MTRANSFERAUTOAPPYN" id="LGD_MTRANSFERAUTOAPPYN" value="">
|
||||
<input type="hidden" name="LGD_WINDOW_TYPE" id="LGD_WINDOW_TYPE" value="">
|
||||
<input type="hidden" name="LGD_CUSTOM_USABLEPAY" id="LGD_CUSTOM_USABLEPAY" value="">
|
||||
|
||||
<input type="hidden" name="LGD_BUYER" id="LGD_BUYER" value="@Model.User.username">
|
||||
<input type="hidden" name="LGD_PRODUCTINFO" id="LGD_PRODUCTINFO" value="@(Model.CM.cname.Replace(",", " "))">
|
||||
<input type="hidden" name="LGD_BUYEREMAIL" id="LGD_BUYEREMAIL" value="@Model.User.email">
|
||||
<!-- Xpay 결제 end -->
|
||||
</form>
|
||||
@section scriptsHeader{
|
||||
<style type="text/css">
|
||||
.hide{display: none;}
|
||||
</style>
|
||||
}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$("input[name='ptype']").on("change", function () {
|
||||
$("#cashbox").hide();
|
||||
if ($(this).val() == 3) {
|
||||
$("#cashbox").show();
|
||||
}
|
||||
});
|
||||
$("input[name='iscashrct']").on("change", function () {
|
||||
if ($(this).val() == 1) {
|
||||
$(".cashnot").removeClass("hide");
|
||||
} else {
|
||||
$(".cashnot").addClass("hide");
|
||||
}
|
||||
});
|
||||
});
|
||||
function save() {
|
||||
$("#cashrcthp").val("");
|
||||
if ($("input[name='ptype']:checked").length > 0 && $("input[name='ptype']:checked").val() == 1) {
|
||||
$("#pay0201").prop("checked", true);
|
||||
} else if ($("input[name='ptype']:checked").length > 0 && $("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length == 1 && $("input[name='iscashrct']:checked").val() == 1) {
|
||||
$("#cashrcthp").val($("#hp1").val() + $("#hp2").val() + $("#hp3").val());
|
||||
}
|
||||
if ($("input[name='ptype']:checked").length < 1) {
|
||||
msg("결제방법을 선택해주세요.");
|
||||
} else if ($("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").length < 1) {
|
||||
msg("현금영수증 발행여부를 선택해주세요.");
|
||||
} else if ($("input[name='ptype']:checked").val() == 3 && $("input[name='iscashrct']:checked").val() == 1 && !ismobilenumber($("#cashrcthp").val())) {
|
||||
msg("현금영수증 발행 핸드폰번호를 올바르게 입력해주세요.");
|
||||
} else {
|
||||
cap("/fcommon/paystart", "mform", "cbsave");
|
||||
}
|
||||
}
|
||||
function cbsave() {
|
||||
if (capResult.code == 1000) {
|
||||
if (capResult.obj == 0) {
|
||||
var resultmsg = capResult.msg;
|
||||
if (resultmsg.indexOf("buyertel")) {
|
||||
msg("개인정보에 휴대폰 번호를 입력해주세요.");
|
||||
} else {
|
||||
msg(capResult.msg);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (capResult.obj.ptype == 6 || capResult.obj.ptype == 7) {
|
||||
location.href = "@Model.viewname4?payno=" + capResult.obj.payno + "&absptype=" + capResult.obj.ptype;
|
||||
}
|
||||
else {
|
||||
setv("LGD_OID", capResult.obj.oid2 + capResult.obj.payno);
|
||||
setv("LGD_CLOSEDATE", capResult.obj.paylimityyyyMMddHHmmss);
|
||||
setv("LGD_AMOUNT", capResult.obj.payamt);
|
||||
|
||||
setv("LGD_OSTYPE_CHECK", ismobile() ? "M" : "P");
|
||||
setv("LGD_CUSTOM_SWITCHINGTYPE", ismobile() ? "SUBMIT" : "IFRAME");
|
||||
setv("LGD_VERSION", ismobile() ? "ASPNET_Non-ActiveX_SmartXPay" : "ASPNET_Non-ActiveX_Standard");
|
||||
setv("LGD_CUSTOM_SKIN", ismobile() ? "SMART_XPAY2" : "red");
|
||||
var paymentMethod = $(':radio[name="ptype"]:checked').val() == 1 ? "SC0010" : $(':radio[name="ptype"]:checked').val() == 2 ? "SC0030" : $(':radio[name="ptype"]:checked').val() == 3 ? "SC0040" : "-";
|
||||
if (ismobile()) {
|
||||
setv("CST_WINDOW_TYPE", "submit");
|
||||
setv("LGD_PCVIEWYN", "N");
|
||||
setv("LGD_CUSTOM_FIRSTPAY", paymentMethod);
|
||||
setv("LGD_KVPMISPAUTOAPPYN", checkMobile());
|
||||
setv("LGD_MTRANSFERAUTOAPPYN", checkMobile());
|
||||
} else {
|
||||
setv("LGD_WINDOW_TYPE", "iframe");
|
||||
setv("LGD_CUSTOM_USABLEPAY", paymentMethod);
|
||||
}
|
||||
document.getElementById('mform').submit();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
msgadmin();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
@model NP.Model.VMPay
|
||||
@if (ViewBag.isPayTest == "1")
|
||||
{
|
||||
//테스트일 경우
|
||||
<script language="javascript" src="https://pretest.tosspayments.com:9443/xpay/js/xpay_crossplatform.js" type="text/javascript"></script>
|
||||
}
|
||||
else
|
||||
{
|
||||
//서비스일 경우
|
||||
<script language="javascript" src="https://xpayvvip.tosspayments.com/xpay/js/xpay_crossplatform.js" type="text/javascript"></script>
|
||||
}
|
||||
<br />
|
||||
<div style="border: 1px solid #ddd; color: red; font-weight: bold; font-size: 13px; text-align: center; padding: 15px;">결제 진행중입니다. 잠시만 기다려주세요.</div>
|
||||
<br />
|
||||
|
||||
<form method="post" id="LGD_PAYINFO" action="">
|
||||
@foreach (System.Collections.DictionaryEntry data in Model.payParams)
|
||||
{
|
||||
<input type="hidden" name="@data.Key" id="@data.Key" value="@data.Value" /><br />
|
||||
@*@(data.Key + "-" + data.Value)*@
|
||||
}
|
||||
</form>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
launchCrossPlatform();
|
||||
});
|
||||
/* 수정불가 */
|
||||
function launchCrossPlatform() {
|
||||
if (ismobile()) {
|
||||
lgdwin = open_paymentwindow(document.getElementById('LGD_PAYINFO'), val("CST_PLATFORM"), val("CST_WINDOW_TYPE"));
|
||||
} else {
|
||||
lgdwin = openXpay(document.getElementById('LGD_PAYINFO'), val("CST_PLATFORM"), val("LGD_WINDOW_TYPE"), null, "", "");
|
||||
}
|
||||
}
|
||||
|
||||
/* FORM 명만 수정 가능 */
|
||||
function getFormObject() {
|
||||
return document.getElementById("LGD_PAYINFO");
|
||||
}
|
||||
|
||||
/* 인증결과 처리 */
|
||||
function payment_return() {
|
||||
var fDoc;
|
||||
fDoc = lgdwin.contentWindow || lgdwin.contentDocument;
|
||||
alert(1);
|
||||
document.getElementById("LGD_PAYINFO").target = "_self";
|
||||
if (fDoc.document.getElementById('LGD_RESPCODE').value == "0000") {
|
||||
document.getElementById("LGD_PAYKEY").value = fDoc.document.getElementById('LGD_PAYKEY').value;
|
||||
document.getElementById("LGD_PAYINFO").action = "/Course/OnPayReturn";
|
||||
document.getElementById("LGD_PAYINFO").submit();
|
||||
}
|
||||
else {
|
||||
document.getElementById("rsMsg").value = fDoc.document.getElementById('rsMsg').value;
|
||||
document.getElementById("LGD_PAYINFO").action = "/Course/PayOn";
|
||||
closeIframe();
|
||||
document.getElementById("LGD_PAYINFO").submit();
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
@{
|
||||
Layout = null;
|
||||
}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head id="Head1" runat="server">
|
||||
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
|
||||
<script type="text/javascript" src="/js/site.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
function setLGDResult() {
|
||||
if (ismobile()) {
|
||||
document.getElementById('LGD_PAYINFO').submit();
|
||||
} else {
|
||||
parent.payment_return();
|
||||
}
|
||||
|
||||
try {
|
||||
} catch (e) {
|
||||
alert(e.message);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="setLGDResult()">
|
||||
<br />
|
||||
<div style="border: 1px solid #ddd; color: red; font-weight: bold; font-size: 13px; text-align: center; padding: 15px;">결제 진행중입니다. 잠시만 기다려주세요.</div>
|
||||
<br />
|
||||
<form method="post" name="LGD_PAYINFO" id="LGD_PAYINFO" action="/Course/OnPayReturn">
|
||||
@if (Model.payParams != null)
|
||||
{
|
||||
foreach (System.Collections.DictionaryEntry data in Model.payParams)
|
||||
{
|
||||
<input type="hidden" name="@data.Key" id="@data.Key" value="@data.Value" /><br />
|
||||
}
|
||||
}
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
<add key="thumbnailexe" value="D:\\dev_tool\\ffmpeg.exe" />
|
||||
|
||||
<!--개발자pc결제테스트를 위한 서브도메인 무효화 변수-->
|
||||
<add key="ispaytest" value="0" />
|
||||
<add key="ispaytest" value="1" />
|
||||
<add key="isdevtest" value="0" />
|
||||
<add key="deliveramt" value="2500" />
|
||||
<!--0:pc결제 url | 1:mid | 2:hashed signkey | 3:취소모듈비밀번호 | 4:거래번호앞두자리-->
|
||||
|
|
@ -58,6 +58,25 @@
|
|||
<!--<add key="pginfomobile" value="https://edu.kfcf.or.kr|/Account/PayVBankMoneyMobile" />-->
|
||||
|
||||
<add key="pgroot" value="D:\INIpay50_ASP" />
|
||||
|
||||
|
||||
<!-- 토스페이먼츠(구LG Xpay) 결제 시작 -->
|
||||
<add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" />
|
||||
<add key="CST_MID" value="yicte2000" />
|
||||
<!--상점아이디-->
|
||||
<add key="CST_PLATFORM" value="test" />
|
||||
<!--test, service-->
|
||||
<add key="LGD_ENCODING" value="UTF-8" />
|
||||
<add key="LGD_BACKBTN_YN" value="N" />
|
||||
<add key="LGD_CASNOTEURL" value="https://kdh.nptc.kr:8082/Account/XPayVBankMoney" />
|
||||
<!--가상계좌 입금통보 URL-->
|
||||
<add key="LGD_AUTOFILLYN_BUYER" value="Y" />
|
||||
<add key="LGD_CASHRECEIPTYN" value="Y" />
|
||||
<add key="LGD_ESCROW_USEYN" value="N" />
|
||||
<add key="PAYMENT_CLASSIFICATION" value="te" />
|
||||
<add key="LGD_MERTKEY" value="e988951b7fe0b7f25ebaa07e54824365" />
|
||||
<!-- 토스페이먼츠(구LG Xpay) 결제 종료 -->
|
||||
|
||||
</appSettings>
|
||||
<!-- to see logging output in the attached debugger -->
|
||||
<common>
|
||||
|
|
@ -112,7 +131,8 @@
|
|||
<!--<sessionState cookieless="UseCookies" regenerateExpiredSessionId="false" mode="StateServer" compressionEnabled="true" stateConnectionString="tcpip=localhost:42424" timeout="10" cookieName="tssc" />-->
|
||||
|
||||
|
||||
<sessionState cookieless="UseCookies" cookieName="kfcf" mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="60" />
|
||||
<!--<sessionState cookieless="UseCookies" cookieName="kfcf" mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="60" />-->
|
||||
<sessionState cookieless="UseCookies" cookieName="yicte" mode="StateServer" stateConnectionString="tcpip=localhost:42424" timeout="60" />
|
||||
<!--<sessionState cookieless="UseCookies" cookieName="kfcff" mode="Off" stateConnectionString="tcpip=xxx.xxx.xxx:42424" timeout="60" />-->
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -209,6 +209,9 @@ namespace NP.Model
|
|||
public int exno { get; set; }
|
||||
public long rfdno { get; set; }
|
||||
public int iscanceled { get; set; }
|
||||
public int iscashrct { get; set; }
|
||||
public String cashrcthp { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class PayItem : BaseModel
|
||||
|
|
@ -457,6 +460,9 @@ namespace NP.Model
|
|||
return sstime.ToString("yyyy-MM-dd") + " ~ " + setime.ToString("yyyy-MM-dd");
|
||||
}
|
||||
}
|
||||
public String rbank { get; set; }
|
||||
public String rbankaccnum{ get; set; }
|
||||
public String tbankuser{ get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -49,5 +49,6 @@ namespace NP.Model
|
|||
public Int64 pplno { get; set; }
|
||||
public Int64 payno { get; set; }
|
||||
public PayItem PayItem { get; set; }
|
||||
public PPLog PPLog { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,6 +52,10 @@ namespace NP.Model
|
|||
public IList<PayCart> PayCarts { get; set; }
|
||||
public int isexamready { get; set; }
|
||||
public int userno { get; set; }
|
||||
|
||||
public Int64 pplno { get; set; }
|
||||
public PPLog PPLog { get; set; }
|
||||
public int iscashrct { get; set; }
|
||||
public String cashrcthp { get; set; }
|
||||
public System.Collections.Hashtable payParams { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue