using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using NP.Model; using System.Security.Claims; using System.Collections; using System.Text; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using OkCert3Com; using XPayClientNet; using NP.Model.ENUM; namespace NP.FO.Controllers { public class AccountController : FOOpenBaseController { /// /// ID/PW 찾기 /// /// /// public ActionResult FindMe(VMUser vm) { vm.User = new Users() { }; if (vm.userno > 0) { //인증링크 클릭 확인 vm.User = Dao.Get("users.pwuser", new Hashtable() { { "userno", vm.userno }, { "pwcallno", vm.pwcallno } }).FirstOrDefault(); if (vm.User == null || vm.User.pwcallno == null) { vm.User = new Users() { }; vm.userno = -1; } } return View(vm); } public ActionResult Index(VMUser vm){ int userno = SUserInfo != null ? SUserInfo.UserNo : 0; if (userno > 0) { Response.Redirect("~/"); } else { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; if (Request.IsAjaxRequest()) { return JsonError(Base.ENUM.JSONCode.Error, "403:" + Request.Url.AbsolutePath, "0112"); } else { //ViewBag.gossl = 0; //if ("Y".Equals(GetConfig("usessl")) && !Request.IsSecureConnection) //{ // //return Redirect("https://" + Request.Url.Host + Request.Url.PathAndQuery); // ViewBag.gossl = 1; //} vm.Assign = new Assign(); //서브도메인 확인 하여 고객사 설정 var sd = Request.Url.Host.Split('.')[0]; if (GetConfig("isdevtest") != "1" && !Request.Url.Host.Contains("118.219.255.") && Request.Url.Host != "222.122.63.91" && Request.Url.Host != "cte.nptc.kr" && Request.Url.Host != "ynicte.nptc.kr" && Request.Url.Host != "phd.nptc.kr" && MainSubDomain.ToUpper() != sd.ToUpper()) { ViewBag.Files = vm.Files; ViewBag.Assign = vm.Assign = Dao.Get("users.assignsite", new Hashtable() { { "subdomain", sd } }).First(); ViewBag.SiteTitle = vm.Assign.asname; } ViewBag.SavedId = CookieGet("savedid", ""); } } return View(vm); } private ActionResult RedirectToLocal(string returnUrl){ if (Url.IsLocalUrl(returnUrl)){return Redirect(returnUrl);} else {return RedirectToAction(nameof(HomeController.Index), "Home");} } [HttpPost] public ActionResult Join(VMUser vm) { //if ("Y".Equals(GetConfig("usessl")) && !Request.IsSecureConnection) //{ // return Redirect("https://" + Request.Url.Host + Request.Url.PathAndQuery); //} //else //{ if(string.IsNullOrEmpty(vm.User.username) || string.IsNullOrEmpty(vm.User.ci) || string.IsNullOrEmpty(vm.User.di) || vm.User.authplatform == AuthPlatform.None) { return Redirect("/Account/JoinIdVeri"); } ViewBag.JoinOK = false; if (GetInt(Request["intval"]) == 1) { ViewBag.JoinOK = true; } ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(vm); //} } public ActionResult CallOrder(){return View();} public ActionResult Logout(){ CookieClear(null, true); return Redirect("/Account/Index"); } public ActionResult Error(NP.Model.JsonRtn vm) { vm.err = (string)TempData["err"] ?? ""; vm.msg = vm.msg ?? "503"; Exception exception = Server.GetLastError(); Response.Clear(); ViewBag.ErrorMsg = ""; HttpException httpException = exception as HttpException; if (httpException != null) { NP.Base.Logger.Error("ApplicationError" + vm.msg, exception); } Server.ClearError(); if (Request.IsAjaxRequest()) { //public static bool IsAjaxRequest(this HttpRequest request) //{ // if (request == null) // { // throw new ArgumentNullException("request"); // } // // return (request["X-Requested-With"] == "XMLHttpRequest") || ((request.Headers != null) && (request.Headers["X-Requested-With"] == "XMLHttpRequest")); //} return JsonError(Base.ENUM.JSONCode.Error, vm.msg + ":" + Request.Url.AbsolutePath + (exception ?? new Exception()).Message, exception); } return View("Error", vm); } [AllowAnonymous] public ActionResult BanEmail(VMUser vm, int et, int no = 0) { try { switch (et) { case 0: //뉴스레터수신거부 if (no != 0) { Dao.Save("common.emailban", new Hashtable() { { "SendNo", no }, { "Email", vm.em }, { "uno", 1 }, { "uip", GetUserIP() } }); } else { Dao.Save("common.emailban", new Hashtable() { { "Email", vm.em }, { "uno", 1 }, { "uip", GetUserIP() } }); } break; default: break; } } catch (Exception ex) { SetError("/account/banemail:" + vm.em + ":" + ex.Message + ex.StackTrace); } return View(vm); } public ActionResult Error403(NP.Model.JsonRtn vm){vm.msg = "403";return Error(vm);} public ActionResult Error404(NP.Model.JsonRtn vm){vm.msg = "404" + (Request.IsLocal ? Request.Url.Query : "");return Error(vm);} public ActionResult Error500(NP.Model.JsonRtn vm){vm.msg = "500";return Error(vm);} //public JsonResult JsonError(NP.Base.ENUM.JSONCode cd, String m, T t){return Json(new NP.Model.JsonRtn() { Code = (int)cd, Msg = m, Obj = t }, JsonRequestBehavior.AllowGet);} /// /// pc가상계좌입금통보 /// /// public String PayVBankMoney() { try { String TEMP_IP = GetUserIP(); String PG_IP = TEMP_IP.Substring(0, 10); if (PG_IP == "203.238.37" || PG_IP == "39.115.212" || PG_IP == "183.109.71" )//PG에서 보냈는지 IP로 체크 { String NO_TID = Request["NO_TID"];//거래번호 String NO_OID = Request["NO_OID"];//상점 주문번호 String ID_MERCHANT = Request["ID_MERCHANT"]; //상점 아이디 String CD_BANK = Request["CD_BANK"]; //거래 발생 기관 코드 String CD_DEAL = Request["CD_DEAL"]; //취급 기관 코드 String DT_TRANS = Request["DT_TRANS"]; //거래 일자 String TM_TRANS = Request["TM_TRANS"]; //거래 시간 String NO_MSGSEQ = Request["NO_MSGSEQ"]; //전문 일련 번호 String CD_JOINORG = Request["CD_JOINORG"]; //제휴 기관 코드 String NO_TRANSEQ = Request["NO_TRANSEQ"]; //거래 일련 번호 String NO_VACCT = Request["NO_VACCT"]; //가상계좌번호 String AMT_INPUT = Request["AMT_INPUT"]; //입금금액 String AMT_CHECK = Request["AMT_CHECK"]; //미결제 타점권 금액 String CL_CLOSE = Request["CL_CLOSE"]; //마감 구분코드 String TYPE_MSG = Request["TYPE_MSG"]; //거래 구분 코드 String NM_INPUTBANK = Request["NM_INPUTBANK"]; //입금 금융기관명 String NM_INPUT = Request["NM_INPUT"]; //입금 의뢰인 String DT_INPUTSTD = Request["DT_INPUTSTD"]; //입금 기준 일자 String DT_CALCULSTD = Request["DT_CALCULSTD"]; //정산 기준 일자 String DT_TRANSBASE = Request["DT_TRANSBASE"]; //거래 기준 일자 String CL_KOR = Request["CL_KOR"]; //한글 구분 코드 String NO_MSGMANAGE = Request["NO_MSGMANAGE"]; //전문 관리 번호 String FLG_CLOSE = Request["FLG_CLOSE"]; //마감 전화 String DT_CSHR = Request["DT_CSHR"]; //현금영수증 발급일자 // 가상계좌채번시 현금영수증 자동발급신청시에만 전달 String TM_CSHR = Request["TM_CSHR"]; //현금영수증 발급시간 String NO_CSHR_APPL = Request["NO_CSHR_APPL"]; //현금영수증 발급번호 String NO_CSHR_TID = Request["NO_CSHR_TID"]; //현금영수증 발급TID System.Text.Encoding encKr = System.Text.Encoding.GetEncoding("euc-kr"); System.Text.EncodingInfo[] encods = System.Text.Encoding.GetEncodings(); System.Text.Encoding destEnc = System.Text.Encoding.UTF8; try { String path = GetConfig("pgroot") + @"\log\result.log"; if (!System.IO.File.Exists(path)) { System.IO.File.Create(path); } using (System.IO.StreamWriter sw = System.IO.File.AppendText(path)) { sw.WriteLine("************************************************"); sw.WriteLine("ID_MERCHANT : " + ID_MERCHANT); sw.WriteLine("NO_TID : " + NO_TID); sw.WriteLine("NO_OID : " + NO_OID); sw.WriteLine("NO_VACCT : " + NO_VACCT); sw.WriteLine("AMT_INPUT : " + AMT_INPUT); sw.WriteLine("NM_INPUTBANK : " + NM_INPUTBANK); sw.WriteLine("NM_INPUT : " + NM_INPUT); byte[] requestBuffer; try { requestBuffer = Request.BinaryRead(Request.TotalBytes); String rp = HttpUtility.UrlDecode(requestBuffer, System.Text.Encoding.GetEncoding("euc-kr")); sw.WriteLine("****************2"); sw.WriteLine("decodestring: " + rp); sw.WriteLine("****************2"); String[] rps = rp.Split('&'); NM_INPUTBANK = rps.Where(w => w.Split('=')[0].ToLower() == "nm_inputbank").First().Split('=')[1]; NM_INPUT = rps.Where(w => w.Split('=')[0].ToLower() == "nm_input").First().Split('=')[1]; requestBuffer = null; } catch (Exception ex) { requestBuffer = null; sw.WriteLine(ex.Message + ex.StackTrace); } //sw.WriteLine("NM_INPUTBANK : " + Encoding.UTF8.GetString(Encoding.Convert(Encoding.GetEncoding("euc-kr"), Encoding.UTF8, Encoding.GetEncoding("euc-kr").GetBytes(NM_INPUTBANK)))); //sw.WriteLine("NM_INPUT : " + Encoding.UTF8.GetString(Encoding.Convert(Encoding.GetEncoding("euc-kr"),Encoding.UTF8,Encoding.GetEncoding("euc-kr").GetBytes(NM_INPUT)))); sw.WriteLine("PAYTIEM : " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")); sw.WriteLine("************************************************"); sw.WriteLine(""); sw.Flush(); } } catch (Exception ex) { SetError(ex.StackTrace); } var payvbankin = new PayVBankIn() { payno = GetLong(NO_OID.Substring(2)), uno = 1, uip = GetUserIP(), pgkey = NO_TID, inbankcode = CD_BANK, indeal = CD_DEAL, inymd = DT_TRANS, inhms = TM_TRANS, msgseq = NO_MSGSEQ, transseq = NO_TRANSEQ, vacct = NO_VACCT, inamt = GetInt(AMT_INPUT), checkamt = GetInt(AMT_CHECK), isclose = CL_CLOSE, typemsg = TYPE_MSG, frombank = NM_INPUTBANK, fromname = NM_INPUT, //frombank = Encoding.UTF8.GetString(Encoding.Convert(Encoding.GetEncoding("euc-kr"), Encoding.UTF8, Encoding.GetEncoding("euc-kr").GetBytes(NM_INPUTBANK))), //fromname = Encoding.UTF8.GetString(Encoding.Convert(Encoding.GetEncoding("euc-kr"), Encoding.UTF8, Encoding.GetEncoding("euc-kr").GetBytes(NM_INPUT))), fromymd = DT_INPUTSTD, calcymd = DT_CALCULSTD, tranymd = DT_TRANSBASE, //transcode = AAAA, korcode = CL_KOR, cshrymd = DT_CSHR, cshrhms = TM_CSHR, cshrcode = NO_CSHR_APPL, cshrpgkey = NO_CSHR_TID }; if (Dao.Save("pay.paylect.vbankin", payvbankin) < 3) { //상품구매완료 처리 (최소 3건 업데이트 (payvbankin, pay) return "FAIL"; } return "OK"; } } catch (Exception ex) { SetError("가상계좌입금오류: " + ex.Message + ex.StackTrace); } return "FAIL"; } /// /// 모바일가상계좌입금통보 /// /// public String PayVBankMoneyMobile() { try { String TEMP_IP = GetUserIP(); //String PG_IP = TEMP_IP.Substring(0, 10); if ((TEMP_IP == "118.129.210.25" || TEMP_IP == "203.238.37.15" || TEMP_IP == "183.109.71.153") && Request["P_TYPE"] == "VBANK" && Request["P_STATUS"] == "02")//PG에서 보냈는지 IP로 체크 { //P_TID=INIMX_VBNKINIpayTest20190821162423335068 //P_MID =INIpayTest //P_AUTH_DT=20190821163218 //P_STATUS=02 //P_TYPE=VBANK //P_OID=te230 //P_FN_CD1=03 //P_FN_CD2= //P_FN_NM=기업은행 //P_AMT=100 //P_UNAME=npuser1name //P_RMESG1=P_VACCT_NO=07502280297143|P_EXP_DT=20190827 //P_RMESG2= //P_NOTI=MOBILE|/OffDetail?cmno=87|230 //P_AUTH_NO= //P_CSHR_AMT= //P_CSHR_SUP_AMT= //P_CSHR_TAX= //P_CSHR_SRVC_AMT= //P_CSHR_TYPE= //P_CSHR_DT=20190821163218 //P_CSHR_AUTH_NO=266477600 //P_HASH=diUGxXN1CUumXZX1GBcB5sS7SNQOqAq1BfGIALI82qmMLLHAkq0y18MTuuS18rqVJQhhWLHEDAcifsXZ3U9urQ==Jakarta Commons - HttpClient / 3.0.1 String NO_TID = Request["P_TID"];//거래번호 String NO_OID = Request["P_OID"];//상점 주문번호 String ID_MERCHANT = Request["P_MID"]; //상점 아이디 String CD_BANK = Request["P_FN_CD1"]; //거래 발생 기관 코드 String P_FN_NM = Request["P_FN_NM"]; //금융사명 String CD_DEAL = "";// Request["aaaaaaaaCD_DEAL"]; //취급 기관 코드 String DT_TRANS = "";//Request["aaaaaaaaDT_TRANS"]; //거래 일자 String TM_TRANS = "";//equest["aaaaaaaaTM_TRANS"]; //거래 시간 String NO_MSGSEQ = "";// Request["aaaaaaaaNO_MSGSEQ"]; //전문 일련 번호 String CD_JOINORG = "";// Request["aaaaaaaaCD_JOINORG"]; //제휴 기관 코드 String NO_TRANSEQ = "";// Request["aaaaaaaaNO_TRANSEQ"]; //거래 일련 번호 String NO_VACCT = "";// Request["aaaaaaaaNO_VACCT"]; //가상계좌번호 String AMT_INPUT = Request["P_AMT"]; //입금금액 String AMT_CHECK = "";// Request["aaaaaaaaAMT_CHECK"]; //미결제 타점권 금액 String CL_CLOSE = "";// Request["aaaaaaaaCL_CLOSE"]; //마감 구분코드 String TYPE_MSG = "";// Request["aaaaaaaaTYPE_MSG"]; //거래 구분 코드 String NM_INPUTBANK = Request["P_FN_NM"]; //입금 금융기관명 String NM_INPUT = Request["P_UNAME"]; //입금 의뢰인 String DT_INPUTSTD = "";//Request["aaaaaaaaDT_INPUTSTD"]; //입금 기준 일자 String DT_CALCULSTD = "";//Request["aaaaaaaaDT_CALCULSTD"]; //정산 기준 일자 String DT_TRANSBASE = "";// Request["aaaaaaaaDT_TRANSBASE"]; //거래 기준 일자 String CL_KOR = "";// Request["aaaaaaaaCL_KOR"]; //한글 구분 코드 String NO_MSGMANAGE = "";// Request["aaaaaaaaNO_MSGMANAGE"]; //전문 관리 번호 String FLG_CLOSE = "";// Request["aaaaaaaaFLG_CLOSE"]; //마감 전화 String DT_CSHR = Request["P_CSHR_DT"]; //현금영수증 발급일자 // 가상계좌채번시 현금영수증 자동발급신청시에만 전달 String TM_CSHR = "";// Request["aaaaaaaaTM_CSHR"]; //현금영수증 발급시간 String NO_CSHR_APPL = Request["P_CSHR_AUTH_NO"]; //현금영수증 발급번호 String NO_CSHR_TID = Request["P_CSHR_AUTH_NO"]; //현금영수증 발급TID String NO_CSHR_AMT = Request["P_CSHR_AMT"]; //현금영수증 발행금액 System.Text.Encoding encKr = System.Text.Encoding.GetEncoding("euc-kr"); System.Text.EncodingInfo[] encods = System.Text.Encoding.GetEncodings(); System.Text.Encoding destEnc = System.Text.Encoding.UTF8; try { String path = GetConfig("pgroot") + @"\log\resultmobile.log"; if (!System.IO.File.Exists(path)) { System.IO.File.Create(path); } using (System.IO.StreamWriter sw = System.IO.File.AppendText(path)) { sw.WriteLine("************************************************"); sw.WriteLine("ID_MERCHANT : " + ID_MERCHANT); sw.WriteLine("NO_TID : " + NO_TID); sw.WriteLine("NO_OID : " + NO_OID); sw.WriteLine("NO_VACCT : " + NO_VACCT); sw.WriteLine("AMT_INPUT : " + AMT_INPUT); sw.WriteLine("NM_INPUTBANK : " + NM_INPUTBANK); sw.WriteLine("NM_INPUT : " + NM_INPUT); sw.WriteLine("************************************************"); sw.WriteLine(""); sw.Flush(); } } catch (Exception ex) { SetError(ex.StackTrace); } var payvbankin = new PayVBankIn() { payno = GetLong(NO_OID.Substring(2)), uno = 1, uip = GetUserIP(), pgkey = NO_TID, inbankcode = CD_BANK, indeal = CD_DEAL, inymd = DT_TRANS, inhms = TM_TRANS, msgseq = NO_MSGSEQ, transseq = NO_TRANSEQ, vacct = NO_VACCT, inamt = GetInt(AMT_INPUT), checkamt = GetInt(AMT_CHECK), isclose = CL_CLOSE, typemsg = TYPE_MSG, frombank = NM_INPUTBANK, fromname = NM_INPUT, fromymd = DT_INPUTSTD, calcymd = DT_CALCULSTD, tranymd = DT_TRANSBASE, //transcode = AAAA, korcode = CL_KOR, cshrymd = DT_CSHR, cshrhms = TM_CSHR, cshrcode = NO_CSHR_APPL, cshrpgkey = NO_CSHR_TID, cshramt = NO_CSHR_AMT }; if (Dao.Save("pay.paylect.vbankin", payvbankin) < 3) { //상품구매완료 처리 (최소 3건 업데이트 (payvbankin, pay) return "FAIL"; } return "OK"; } } catch (Exception ex) { SetError("가상계좌입금오류: " + ex.StackTrace); } return "FAIL"; } public ActionResult AdminEE(int un, int eek, int at, int an) { var u = Dao.Get("users.eecall2", new Hashtable() { { "userno", un }, { "eek", eek },{ "uno", an },{ "uip", GetUserIP()} }).FirstOrDefault(); if (u != null && u.usertype == 1) { u = GoLogin(u.userid, "rhksflwkfhrmdls999"); return Redirect("/"); } return RedirectToAction("Index"); } public ActionResult JoinTSel() { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } public ActionResult JoinIdVeri() { return View(); } #region 본인인증 요청(mobile(가입이전,휴대폰인증),ipin) /// /// 본인인증 요청(mobile(가입이전,휴대폰인증),ipin) /// /// /// public ActionResult CertOk3Req(String sel, String reason, String param1, String param2) { String CP_CD = "V47690000000"; String SITE_NAME = "YNICTE"; String REQ_SITE_NM = "YNICTE"; String REQ_URL = ""; String RETURN_MSG = ""; String SITE_URL = "https://" + Request.Url.Host; //String SITE_URL = GetConfig("fronturl"); //인증요청사유코드 //00 : 회원가입 //01 : 성인인증 //02 : 회원정보수정 //03 : 비밀번호찾기 //04 : 상품구매 //99 : 기타 String RQST_CAUS_CD = reason == "Join" ? "00" : "02"; String target = "PROD"; String param = null; String RSLT_CD = null; String RSLT_MSG = null; String MDL_TKN = null; String TX_SEQ_No = null; String RETURN_URL = ""; String RTN_URL = ""; String CHNL_CD = ""; String license = ""; String svcName = ""; ViewBag.sel = sel; ViewBag.tcUrl = ""; ViewBag.PopupUrl = ""; //return url 설정 RETURN_URL = "https://" + Request.Url.Host + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); RTN_URL = "https://" + Request.Url.Host + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //모바일팝업 if (sel == "MOBI") { license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat"; svcName = "IDS_HS_POPUP_START"; ViewBag.tcUrl = "kcb.oknm.online.safehscert.popup.cmd.P931_CertChoiceCmd"; ViewBag.PopupUrl = "https://safe.ok-name.co.kr/CommonSvl"; } else if (sel == "IPIN") { license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat"; svcName = "TIS_IPIN_POPUP_START"; ViewBag.tcUrl = "kcb.tis.ti.cmd.LoginRPCert3Cmd"; ViewBag.PopupUrl = "https://ipin.ok-name.co.kr/CommonSvl"; } JObject reqJson = new JObject(); reqJson.Add("RETURN_URL", RETURN_URL); reqJson.Add("REQ_SITE_NM", REQ_SITE_NM); reqJson.Add("REQ_URL", REQ_URL); reqJson.Add("RTN_URL", RTN_URL); reqJson.Add("SITE_NAME", SITE_NAME); reqJson.Add("SITE_URL", SITE_URL); reqJson.Add("CHNL_CD", CHNL_CD); reqJson.Add("RQST_CAUS_CD", RQST_CAUS_CD); reqJson.Add("RETURN_MSG", RETURN_MSG); param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; //OkCert3 실행1 OkCert3 myObject = new OkCert3Com.OkCert3() { }; //객체생성실패 if (myObject == null) { ViewBag.result = null; } else { //모듈호출, 결과 dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); ViewBag.ret = ret; if (ret != 0) { ViewBag.result = null; } else { JObject outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString())); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); MDL_TKN = outputobj["MDL_TKN"].ToString(); TX_SEQ_No = outputobj["TX_SEQ_NO"].ToString(); } } ViewBag.result = CP_CD + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + MDL_TKN + ":" + TX_SEQ_No; return View(); } public ActionResult CertOk3Req2(String sel, String reason, String param1, String param2) { String CP_CD = "V47690000000"; String SITE_NAME = "YNICTE"; String REQ_SITE_NM = "YNICTE"; String REQ_URL = ""; String RETURN_MSG = ""; String SITE_URL = "https://" + Request.Url.Host; //String SITE_URL = GetConfig("fronturl"); //인증요청사유코드 //00 : 회원가입 //01 : 성인인증 //02 : 회원정보수정 //03 : 비밀번호찾기 //04 : 상품구매 //99 : 기타 String RQST_CAUS_CD = reason == "Join" ? "00" : "02"; String target = "PROD"; String param = null; String RSLT_CD = null; String RSLT_MSG = null; String MDL_TKN = null; String TX_SEQ_No = null; String RETURN_URL = ""; String RTN_URL = ""; String CHNL_CD = ""; String license = ""; String svcName = ""; ViewBag.sel = sel; ViewBag.tcUrl = ""; ViewBag.PopupUrl = ""; //return url 설정 RETURN_URL = "https://" + Request.Url.Host + "/Account/CertOk3" + sel + "2?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); RTN_URL = "https://" + Request.Url.Host + "/Account/CertOk3" + sel + "2?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason + (!string.IsNullOrEmpty(param1) ? "¶m1=" + param1 : "") + (!string.IsNullOrEmpty(param2) ? "¶m2=" + param2 : ""); //모바일팝업 if (sel == "MOBI") { license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat"; svcName = "IDS_HS_POPUP_START"; ViewBag.tcUrl = "kcb.oknm.online.safehscert.popup.cmd.P931_CertChoiceCmd"; ViewBag.PopupUrl = "https://safe.ok-name.co.kr/CommonSvl"; } else if (sel == "IPIN") { license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat"; svcName = "TIS_IPIN_POPUP_START"; ViewBag.tcUrl = "kcb.tis.ti.cmd.LoginRPCert3Cmd"; ViewBag.PopupUrl = "https://ipin.ok-name.co.kr/CommonSvl"; } JObject reqJson = new JObject(); reqJson.Add("RETURN_URL", RETURN_URL); reqJson.Add("REQ_SITE_NM", REQ_SITE_NM); reqJson.Add("REQ_URL", REQ_URL); reqJson.Add("RTN_URL", RTN_URL); reqJson.Add("SITE_NAME", SITE_NAME); reqJson.Add("SITE_URL", SITE_URL); reqJson.Add("CHNL_CD", CHNL_CD); reqJson.Add("RQST_CAUS_CD", RQST_CAUS_CD); reqJson.Add("RETURN_MSG", RETURN_MSG); param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; //OkCert3 실행1 OkCert3 myObject = new OkCert3Com.OkCert3() { }; //객체생성실패 if (myObject == null) { ViewBag.result = null; } else { //모듈호출, 결과 dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); ViewBag.ret = ret; if (ret != 0) { ViewBag.result = null; } else { JObject outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString())); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); MDL_TKN = outputobj["MDL_TKN"].ToString(); TX_SEQ_No = outputobj["TX_SEQ_NO"].ToString(); } } ViewBag.result = CP_CD + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + MDL_TKN + ":" + TX_SEQ_No; return View(); } #endregion #region 휴대폰인증 결과 /// /// 휴대폰인증 결과 /// /// public ActionResult CertOk3MOBI(string reason, String param1, String param2) { String MDL_TKN = Request["MDL_TKN"]; String CP_CD = "V47690000000"; String target = "PROD"; String svcName = "IDS_HS_POPUP_RESULT"; String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat"; String TX_SEQ_NO = null; String RSLT_CD = null; String RSLT_MSG = null; String RSLT_NAME = null; String RSLT_BIRTHDAY = null; String RSLT_SEX_CD = null; String RSLT_NTV_FRNR_CD = null; String DI = null; String CI = null; String CI_UPDATE = null; String TEL_COM_CD = null; String TEL_NO = null; String RETURN_MSG = null; JObject reqJson = new JObject(); JObject outputobj = new JObject(); reqJson.Add("MDL_TKN", MDL_TKN); String param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; OkCert3 myObject = new OkCert3Com.OkCert3() { }; if (myObject == null) { RETURN_MSG = null; } else { dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); ViewBag.ret = ret; myObject = null; outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString())); TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString(); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); RETURN_MSG = outputobj["RETURN_MSG"].ToString(); if (RSLT_CD == "B000") { RSLT_NAME = outputobj["RSLT_NAME"].ToString(); RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString(); RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString(); RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString(); DI = outputobj["DI"].ToString(); CI = outputobj["CI"].ToString(); CI_UPDATE = outputobj["CI_UPDATE"].ToString(); TEL_COM_CD = outputobj["TEL_COM_CD"].ToString(); TEL_NO = outputobj["TEL_NO"].ToString(); //Users users = new Users() //{ // username = RSLT_NAME, // birthday = RSLT_BIRTHDAY, // di=DI, // mobile = TEL_NO, // jointype=0 //}; TEL_NO = string.IsNullOrEmpty(TEL_NO) || TEL_NO.Replace("-", "").Length < 10 ? (TEL_NO ?? "") : TEL_NO.Replace("-", "").Length == 10 ? string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 3), TEL_NO.Replace("-", "").Substring(6)) : string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 4), TEL_NO.Replace("-", "").Substring(7)); if (!string.IsNullOrEmpty(TEL_NO)) { if (reason == "Join") { IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (reason == "AuthPlatformChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; RSLT_MSG = "비로그인"; } } else if (reason == "MobileNumberChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; RSLT_MSG = "비로그인"; } } } else { RSLT_CD = "U001"; RSLT_MSG = "휴대폰 번호 오류"; } } outputobj = null; mOut = null; ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":" + DI + ":" + CI + ":" + CI_UPDATE + ":" + TEL_COM_CD + ":" + TEL_NO + ":" + RETURN_MSG; Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "mobile", TEL_NO }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } }); ViewBag.reason = reason; } return View(); } public ActionResult CertOk3MOBI2(string reason, String param1, String param2) { String MDL_TKN = Request["MDL_TKN"]; String CP_CD = "V47690000000"; String target = "PROD"; String svcName = "IDS_HS_POPUP_RESULT"; String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_IDS_01_" + target + "_AES_license.dat"; String TX_SEQ_NO = null; String RSLT_CD = null; String RSLT_MSG = null; String RSLT_NAME = null; String RSLT_BIRTHDAY = null; String RSLT_SEX_CD = null; String RSLT_NTV_FRNR_CD = null; String DI = null; String CI = null; String CI_UPDATE = null; String TEL_COM_CD = null; String TEL_NO = null; String RETURN_MSG = null; int chkNo = 0; try { JObject reqJson = new JObject(); JObject outputobj = new JObject(); reqJson.Add("MDL_TKN", MDL_TKN); String param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; OkCert3 myObject = new OkCert3Com.OkCert3() { }; // 인증 후 결과값 int reasonNo = -1; string retVal = ""; string rslt = ""; string rsltCd = ""; switch (reason) { case "Join": reasonNo = CertOkReason.Join.GetHashCode(); break; case "AuthPlatformChange": reasonNo = CertOkReason.AuthPlatformChange.GetHashCode(); break; case "MobileNumberChange": reasonNo = CertOkReason.MobileNumberChange.GetHashCode(); break; } if (myObject == null) { RETURN_MSG = null; } else { chkNo = 1; dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); retVal = ((int)ret).ToString(); myObject = null; rslt = mOut.ToString(); outputobj = JObject.FromObject(JsonConvert.DeserializeObject(rslt)); TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString(); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); RETURN_MSG = outputobj["RETURN_MSG"].ToString(); if (RSLT_CD == "B000") { chkNo = 2; RSLT_NAME = outputobj["RSLT_NAME"].ToString(); RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString(); RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString(); RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString(); DI = outputobj["DI"].ToString(); CI = outputobj["CI"].ToString(); CI_UPDATE = outputobj["CI_UPDATE"].ToString(); TEL_COM_CD = outputobj["TEL_COM_CD"].ToString(); TEL_NO = outputobj["TEL_NO"].ToString(); TEL_NO = string.IsNullOrEmpty(TEL_NO) || TEL_NO.Replace("-", "").Length < 10 ? (TEL_NO ?? "") : TEL_NO.Replace("-", "").Length == 10 ? string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 3), TEL_NO.Replace("-", "").Substring(6)) : string.Format("{0}-{1}-{2}", TEL_NO.Replace("-", "").Substring(0, 3), TEL_NO.Replace("-", "").Substring(3, 4), TEL_NO.Replace("-", "").Substring(7)); if (!string.IsNullOrEmpty(TEL_NO)) { rsltCd = CertOkRslt.Ok.ToString(); if (reason == "Join") { IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleMember.ToString(); RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (reason == "AuthPlatformChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleMember.ToString(); RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleMember.ToString(); RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; rsltCd = CertOkRslt.CertError.ToString(); RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; rsltCd = CertOkRslt.NoMember.ToString(); RSLT_MSG = "비로그인"; } if (RSLT_CD == "B000") { // ci, di } } else if (reason == "MobileNumberChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleMember.ToString(); RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleMember.ToString(); RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; rsltCd = CertOkRslt.CertError.ToString(); RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; rsltCd = CertOkRslt.NoMember.ToString(); RSLT_MSG = "비로그인"; } } } else { RSLT_CD = "U001"; rsltCd = CertOkRslt.NoPhone.ToString(); RSLT_MSG = "휴대폰 번호 오류"; } } else { rsltCd = CertOkRslt.NoCert.ToString(); } chkNo = 3; outputobj = null; mOut = null; ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":" + DI + ":" + CI + ":" + CI_UPDATE + ":" + TEL_COM_CD + ":" + TEL_NO + ":" + RETURN_MSG; Dao.Save("sys.kcblog.in", new Hashtable() { { "cp_cd", CP_CD }, { "mobile", TEL_NO }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } }); //ViewBag.reason = reason; } chkNo = 4; // 인증 결과 데이터 저장 string gubn = "MOBI"; int sn1 = GetRand(); int sn2 = GetRand2(); string sn = sn1.ToString() + sn2.ToString(); string dtStr = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now); Model.OkCert3Item okCert3item = new OkCert3Item(); okCert3item.gubn = gubn; okCert3item.retVal = retVal; okCert3item.reasonNo = reasonNo; okCert3item.sn = sn; okCert3item.rsltCd = rsltCd; okCert3item.rslt = rslt; chkNo = 5; Dao.Insert("sys.okcert3.in", okCert3item); bool errChk = false; string paramStr = ""; ViewBag.formUrl = ""; ViewBag.result = ""; ViewBag.rsltCd = rsltCd; chkNo = 6; switch (reason) { case "Join": if (RSLT_CD == "B000" && rsltCd == "Ok") { ViewBag.formUrl = "/Account/Join"; paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = rsltCd; } break; case "AuthPlatformChange": ViewBag.formUrl = ""; if (RSLT_CD == "B000" && rsltCd == "Ok") { paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = getOkCertErrMsg(rsltCd); } break; case "MobileNumberChange": ViewBag.formUrl = ""; if (RSLT_CD == "B000" && rsltCd == "Ok") { paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = getOkCertErrMsg(rsltCd); } break; } chkNo = 7; /* * AuthPlatformChange, MobileNumberChange 에 맞춰서 * 마이페이지 수정부분 체크하여 수정하기 */ if (errChk) { ViewBag.result = getOkCertErrMsg(rsltCd); } else { ViewBag.result = HttpUtility.UrlEncode(ViewBag.result); Dao.Save("sys.okcert3.setEnccd", new Hashtable { { "enccd", ViewBag.result }, { "no", okCert3item.no } }); } } catch (Exception e) { ViewBag.result = "er.(" + chkNo + "||" + RSLT_CD + ")" + e.Message; } return View(); } #endregion public string getOkCertErrMsg(string rsltCd) { string result = ""; switch (rsltCd) { case "DoubleMember": result = "er.이미 해당 휴대폰번호로 등록된 회원이 존재합니다."; break; case "DoubleiPinMember": result = "er.이미 해당 ipin으로 등록된 회원이 존재합니다."; break; case "DoubleCert": result = "er.이미 해당 인증정보로 등록된 회원이 존재합니다."; break; case "CertError": result = "er.인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; break; case "NoMember": result = "er.회원정보를 찾을 수 없습니다."; break; case "NoPhone": result = "er.인증정보에 입력된 핸드폰정보를 찾을 수 없습니다."; break; case "iPinError": result = "er.ipin 번호 오류 입니다."; break; case "CmiNo": result = "er.잘못된 회차키 입니다."; break; case "LectNo": result = "er.잘못된 강좌코드 입니다."; break; default: // NoCert result = "er.인증에 실패하였습니다."; break; } return result; } #region IPIN인증 결과 /// /// IPIN인증 결과 /// /// public ActionResult CertOk3IPIN(string reason, string param1, string param2) { String MDL_TKN = Request["MDL_TKN"]; String CP_CD = "V47690000000"; String target = "PROD"; String svcName = "TIS_IPIN_POPUP_RESULT"; String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat"; String TX_SEQ_NO = null; String RSLT_CD = null; String RSLT_MSG = null; String RSLT_NAME = null; String RSLT_BIRTHDAY = null; String RSLT_SEX_CD = null; String RSLT_NTV_FRNR_CD = null; String DI = null; String CI = null; String CI_UPDATE = null; String VSSN = null; String RETURN_MSG = null; JObject reqJson = new JObject(); JObject outputobj = new JObject(); reqJson.Add("MDL_TKN", MDL_TKN); String param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; OkCert3 myObject = new OkCert3Com.OkCert3() { }; if (myObject == null) { RETURN_MSG = null; } else { dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); ViewBag.ret = ret; myObject = null; outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString())); TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString(); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); RETURN_MSG = outputobj["RETURN_MSG"].ToString(); if (RSLT_CD == "T000") { RSLT_NAME = outputobj["RSLT_NAME"].ToString(); RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString(); RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString(); RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString(); DI = outputobj["DI"].ToString(); CI = outputobj["CI"].ToString(); CI_UPDATE = outputobj["CI_UPDATE"].ToString(); VSSN = outputobj["VSSN"].ToString(); //Users users = new Users() //{ // username = RSLT_NAME, // birthday = RSLT_BIRTHDAY, // di = DI, // ci = CI, // vssn = VSSN, // jointype = 0 //}; if (!string.IsNullOrEmpty(VSSN)) { if (reason == "Join") { IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (reason == "AuthPlatformChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; RSLT_MSG = "비로그인"; } } else if (reason == "LectinningAuth") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di) || user.di == DI) { if (long.TryParse(param1, out long lectno)) { if (long.TryParse(param2, out long cmino)) { var lectInnings = Dao.Get("cr.cminnings", new System.Collections.Hashtable() { { "lectno", lectno }, { "userno", SUserInfo.UserNo } }); if (lectInnings.Where(w => w.cmino == cmino).Count() > 0) { var Hashtable = new System.Collections.Hashtable() { { "lectno", lectno }, { "cmino", cmino }, { "isattcheck", 1 }, { "userno", SUserInfo.UserNo }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }; Dao.Save("lect.lectinning.isatt.in", Hashtable); ViewBag.lectno = lectno; ViewBag.cmino = cmino; } else { RSLT_CD = "U998"; RSLT_MSG = "cmino 에러"; } } else { RSLT_CD = "U998"; RSLT_MSG = "cmino 에러"; } } else { RSLT_CD = "U998"; RSLT_MSG = "lectno 에러"; } } else { RSLT_CD = "U002"; RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; RSLT_MSG = "비로그인"; } } } else { RSLT_CD = "U001"; RSLT_MSG = "ipin 번호 오류"; } } outputobj = null; mOut = null; ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":" + DI + ":" + CI + ":" + CI_UPDATE + ":" + VSSN + ":" + RETURN_MSG; //vm.stringval = "CP_CD:" + CP_CD + "&RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG; Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "vssn", VSSN }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } }); ViewBag.reason = reason; } return View(); } public ActionResult CertOk3IPIN2(string reason, string param1, string param2) { String MDL_TKN = Request["MDL_TKN"]; String CP_CD = "V47690000000"; String target = "PROD"; String svcName = "TIS_IPIN_POPUP_RESULT"; String license = "C:\\Windows\\SysWOW64\\" + CP_CD + "_TIS_01_" + target + "_AES_license.dat"; String TX_SEQ_NO = null; String RSLT_CD = null; String RSLT_MSG = null; String RSLT_NAME = null; String RSLT_BIRTHDAY = null; String RSLT_SEX_CD = null; String RSLT_NTV_FRNR_CD = null; String DI = null; String CI = null; String CI_UPDATE = null; String VSSN = null; String RETURN_MSG = null; try { JObject reqJson = new JObject(); JObject outputobj = new JObject(); reqJson.Add("MDL_TKN", MDL_TKN); String param = JsonConvert.SerializeObject(reqJson); reqJson.RemoveAll(); reqJson = null; OkCert3 myObject = new OkCert3Com.OkCert3() { }; // 인증 후 결과값 int reasonNo = -1; string retVal = ""; string rslt = ""; string rsltCd = ""; switch (reason) { case "Join": reasonNo = CertOkReason.Join.GetHashCode(); break; case "AuthPlatformChange": reasonNo = CertOkReason.AuthPlatformChange.GetHashCode(); break; case "MobileNumberChange": reasonNo = CertOkReason.MobileNumberChange.GetHashCode(); break; } if (myObject == null) { RETURN_MSG = null; } else { dynamic ret = myObject.callOkCert3(target, CP_CD, svcName, param, license, out object mOut); retVal = ((int)ret).ToString(); myObject = null; rslt = mOut.ToString(); outputobj = JObject.FromObject(JsonConvert.DeserializeObject(mOut.ToString())); TX_SEQ_NO = outputobj["TX_SEQ_NO"].ToString(); RSLT_CD = outputobj["RSLT_CD"].ToString(); RSLT_MSG = outputobj["RSLT_MSG"].ToString(); RETURN_MSG = outputobj["RETURN_MSG"].ToString(); if (RSLT_CD == "T000") { RSLT_NAME = outputobj["RSLT_NAME"].ToString(); RSLT_BIRTHDAY = outputobj["RSLT_BIRTHDAY"].ToString(); RSLT_SEX_CD = outputobj["RSLT_SEX_CD"].ToString(); RSLT_NTV_FRNR_CD = outputobj["RSLT_NTV_FRNR_CD"].ToString(); DI = outputobj["DI"].ToString(); CI = outputobj["CI"].ToString(); CI_UPDATE = outputobj["CI_UPDATE"].ToString(); VSSN = outputobj["VSSN"].ToString(); //Users users = new Users() //{ // username = RSLT_NAME, // birthday = RSLT_BIRTHDAY, // di = DI, // ci = CI, // vssn = VSSN, // jointype = 0 //}; if (!string.IsNullOrEmpty(VSSN)) { rsltCd = CertOkRslt.Ok.ToString(); if (reason == "Join") { IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleiPinMember.ToString(); RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (reason == "AuthPlatformChange") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di)) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } else { IList chk2 = Dao.Get("users.users", new System.Collections.Hashtable() { { "di", DI }, { "usernonot", SUserInfo.UserNo } }); if (chk2.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 인증정보로 등록된 회원이 존재합니다."; } } } else if (user.di == DI) { //정보수정시 본인제외 체크를 위해 usernonot추가 IList chk = Dao.Get("users.users", new System.Collections.Hashtable() { { "vssn", VSSN }, { "usernonot", SUserInfo.UserNo } }); if (chk.Count() > 0) { RSLT_CD = "U000"; rsltCd = CertOkRslt.DoubleCert.ToString(); RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다."; } } else { RSLT_CD = "U002"; rsltCd = CertOkRslt.CertError.ToString(); RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; rsltCd = CertOkRslt.NoMember.ToString(); RSLT_MSG = "비로그인"; } } else if (reason == "LectinningAuth") { var user = Dao.Get("users.users", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (user != null) { if (string.IsNullOrEmpty(user.di) || user.di == DI) { if (long.TryParse(param1, out long lectno)) { if (long.TryParse(param2, out long cmino)) { var lectInnings = Dao.Get("cr.cminnings", new System.Collections.Hashtable() { { "lectno", lectno }, { "userno", SUserInfo.UserNo } }); if (lectInnings.Where(w => w.cmino == cmino).Count() > 0) { var Hashtable = new System.Collections.Hashtable() { { "lectno", lectno }, { "cmino", cmino }, { "isattcheck", 1 }, { "userno", SUserInfo.UserNo }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }; Dao.Save("lect.lectinning.isatt.in", Hashtable); ViewBag.lectno = lectno; ViewBag.cmino = cmino; } else { RSLT_CD = "U998"; rsltCd = CertOkRslt.CmiNo.ToString(); RSLT_MSG = "cmino 에러"; } } else { RSLT_CD = "U998"; rsltCd = CertOkRslt.CmiNo.ToString(); RSLT_MSG = "cmino 에러"; } } else { RSLT_CD = "U998"; rsltCd = CertOkRslt.LectNo.ToString(); RSLT_MSG = "lectno 에러"; } } else { RSLT_CD = "U002"; rsltCd = CertOkRslt.CertError.ToString(); RSLT_MSG = "인증정보가 등록된 회원 인증정보와 일치하지 않습니다."; } } else { RSLT_CD = "U999"; rsltCd = CertOkRslt.NoMember.ToString(); RSLT_MSG = "비로그인"; } } } else { RSLT_CD = "U001"; rsltCd = CertOkRslt.iPinError.ToString(); RSLT_MSG = "ipin 번호 오류"; } } else { rsltCd = CertOkRslt.NoCert.ToString(); } outputobj = null; mOut = null; ViewBag.result = CP_CD + ":" + TX_SEQ_NO + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + RSLT_NAME + ":" + RSLT_BIRTHDAY + ":" + RSLT_SEX_CD + ":" + RSLT_NTV_FRNR_CD + ":" + DI + ":" + CI + ":" + CI_UPDATE + ":" + VSSN + ":" + RETURN_MSG; //vm.stringval = "CP_CD:" + CP_CD + "&RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG; Dao.Save("sys.kcblog.in", new System.Collections.Hashtable() { { "cp_cd", CP_CD }, { "vssn", VSSN }, { "logmsg", "RSLT_CD:" + RSLT_CD + "&RSLT_MSG:" + RSLT_MSG } }); } string gubn = "IPIN"; int sn1 = GetRand(); int sn2 = GetRand2(); string sn = sn1.ToString() + sn2.ToString(); Model.OkCert3Item okCert3item = new OkCert3Item(); okCert3item.gubn = "IPIN"; okCert3item.retVal = retVal; okCert3item.reasonNo = reasonNo; okCert3item.sn = sn; okCert3item.rsltCd = rsltCd; okCert3item.rslt = rslt; Dao.Insert("sys.okcert3.in", okCert3item); bool errChk = false; string paramStr = ""; ViewBag.formUrl = ""; ViewBag.result = ""; ViewBag.rsltCd = rsltCd; switch (reason) { case "Join": if (RSLT_CD == "T000" && rsltCd == "Ok") { ViewBag.formUrl = "/Account/Join"; paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = rsltCd; } break; case "AuthPlatformChange": ViewBag.formUrl = ""; if (RSLT_CD == "T000" && rsltCd == "Ok") { paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = getOkCertErrMsg(rsltCd); } break; case "MobileNumberChange": ViewBag.formUrl = ""; if (RSLT_CD == "T000" && rsltCd == "Ok") { paramStr += okCert3item.no; paramStr += "," + sn; paramStr += "," + gubn; paramStr += "," + reasonNo; paramStr += "," + rsltCd; //paramEncStr = "stringval:" + EncString(paramStr); ViewBag.result = EncString(paramStr); } else { errChk = true; ViewBag.result = getOkCertErrMsg(rsltCd); } break; } //ViewBag.reason = reason; if (errChk) { ViewBag.result = getOkCertErrMsg(rsltCd); } else { ViewBag.result = HttpUtility.UrlEncode(ViewBag.result); Dao.Save("sys.okcert3.setEnccd", new Hashtable { { "enccd", ViewBag.result }, { "no", okCert3item.no } }); } } catch (Exception e) { ViewBag.result = "er." + e.Message.Replace("\\r", "").Replace("\\n", ""); } return View(); } #endregion /// /// 개인정보 변경안내(비밀번호 변경 90일 경과) /// /// /// public ActionResult PwChange(VMUser vm) { vm.User = new Users() { }; if (SUserInfo.UserNo > 0) { vm.User = Dao.Get("users.pwuser", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (vm.User == null) { vm.User = new Users() { }; vm.userno = -1; } vm.userno = vm.User.userno; } return View(vm); } /// /// 휴면해제 안내 /// /// public ActionResult DormantCancel() { ViewBag.UserNo = SUserInfo.UserNo; // 에듀윌 소스 (사용여부 ??) if (Request.Cookies.Get("RTNURL") != null) { var cookie = Request.Cookies.Get("RTNURL"); ViewBag.RTNURL = cookie.Value; //원래 마케팅용이어서 expire는 제외 //cookie.Expires = DateTime.Now.AddDays(-1); //Response.Cookies.Add(cookie); } if (ViewBag.UserNo > 0) { //인증링크 클릭 확인 Users User = Dao.Get("users.dormants", new Hashtable() { { "userno", SUserInfo.UserNo } }).FirstOrDefault(); if (User == null) { ViewBag.UserNo = -1; } } return View(); } public ActionResult NaverCallback() { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } public ActionResult NaverCallbackJoin() { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } public ActionResult KakaoCallback() { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } public ActionResult GoogleCallback() { ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } public ActionResult SNSLinkCallback(int jointype = 0) { //0:일반, 1:구글, 2:네이버, 3:카카오 ViewBag.Jointype = jointype; ViewBag.naverClientID = naverClientID; ViewBag.kakaoClientID = kakaoClientID; ViewBag.googleClientID = googleClientID; return View(); } //[ValidateInput(false)] public String XPayVBankMoney() { var x = new Xpay(); x.LGD_RESPCODE = Request.Params.Get("LGD_RESPCODE"); x.LGD_RESPMSG = Request.Params.Get("LGD_RESPMSG"); x.LGD_MID = Request.Params.Get("LGD_MID"); x.LGD_OID = Request.Params.Get("LGD_OID"); x.LGD_AMOUNT = Request.Params.Get("LGD_AMOUNT"); x.LGD_TID = Request.Params.Get("LGD_TID"); x.LGD_PAYTYPE = Request.Params.Get("LGD_PAYTYPE"); x.LGD_PAYDATE = Request.Params.Get("LGD_PAYDATE"); x.LGD_HASHDATA = Request.Params.Get("LGD_HASHDATA"); x.LGD_FINANCECODE = Request.Params.Get("LGD_FINANCECODE"); x.LGD_FINANCENAME = Request.Params.Get("LGD_FINANCENAME"); x.LGD_ESCROWYN = Request.Params.Get("LGD_ESCROWYN"); x.LGD_TIMESTAMP = Request.Params.Get("LGD_TIMESTAMP"); x.LGD_ACCOUNTNUM = Request.Params.Get("LGD_ACCOUNTNUM"); x.LGD_CASTAMOUNT = Request.Params.Get("LGD_CASTAMOUNT"); x.LGD_CASCAMOUNT = Request.Params.Get("LGD_CASCAMOUNT"); x.LGD_CASFLAG = Request.Params.Get("LGD_CASFLAG"); x.LGD_CASSEQNO = Request.Params.Get("LGD_CASSEQNO"); x.LGD_CASHRECEIPTNUM = Request.Params.Get("LGD_CASHRECEIPTNUM"); x.LGD_CASHRECEIPTSELFYN = Request.Params.Get("LGD_CASHRECEIPTSELFYN"); x.LGD_CASHRECEIPTKIND = Request.Params.Get("LGD_CASHRECEIPTKIND"); x.LGD_PAYER = Request.Params.Get("LGD_PAYER"); x.LGD_BUYER = Request.Params.Get("LGD_BUYER"); x.LGD_PRODUCTINFO = Request.Params.Get("LGD_PRODUCTINFO"); x.LGD_BUYERID = Request.Params.Get("LGD_BUYERID"); x.LGD_BUYERADDRESS = Request.Params.Get("LGD_BUYERADDRESS"); x.LGD_BUYERPHONE = Request.Params.Get("LGD_BUYERPHONE"); x.LGD_BUYEREMAIL = Request.Params.Get("LGD_BUYEREMAIL"); x.LGD_BUYERSSN = Request.Params.Get("LGD_BUYERSSN"); x.LGD_PRODUCTCODE = Request.Params.Get("LGD_PRODUCTCODE"); x.LGD_RECEIVER = Request.Params.Get("LGD_RECEIVER"); x.LGD_RECEIVERPHONE = Request.Params.Get("LGD_RECEIVERPHONE"); x.LGD_DELIVERYINFO = Request.Params.Get("LGD_DELIVERYINFO"); x.CST_PLATFORM = GetConfig("CST_PLATFORM"); /* ' ************************************************* ' * 2. MD5 해쉬암호화 (수정하지 마세요) - BEGIN ' * ' * MD5 해쉬암호화는 거래 위변조를 막기위한 방법입니다. ' ************************************************* ' * (1) XpayClient의 사용을 위한 xpay 객체 생성 ' * (2) XPayClient 초기화(환경설정 파일 로드) ' CST_PLATFORM: - test, service 값에 따라 lgdacom.conf의 test_url(test) 또는 url(srvice) 사용 ' - test, service 값에 따라 테스트용 또는 서비스용 아이디 생성 ' * (3) Init_TX: 메모리에 mall.conf, lgdacom.conf 할당 및 트랜잭션의 고유한 키 TXID 생성 ' * MD5 해쉬데이터 암호화 검증을 위해 ' * LG유플러스에서 발급한 상점키(MertKey)를 환경설정 파일(lgdacom/conf/mall.conf)에 반드시 입력하여 주시기 바랍니다. ' */ //* LGD_HASHDATA2 추출 ///////////////////// x.configPath = GetConfig("lgdacomConfigPath"); // (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(x.configPath, x.CST_PLATFORM); try { // (3) Init_TX: 메모리에 mall.conf, lgdacom.conf 할당 및 트랜잭션의 고유한 키 TXID 생성 xpay.Init_TX(x.LGD_MID); x.LGD_HASHDATA2 = xpay.GetHashDataCas(x.LGD_MID, x.LGD_OID, x.LGD_AMOUNT, x.LGD_RESPCODE, x.LGD_TIMESTAMP); } catch (Exception err) { SetError("가상계좌입금오류(LGD_HASHDATA2 추출 오류): " + err.StackTrace); return "FAIL"; } /* * 상점 처리결과 리턴메세지 * * OK : 상점 처리결과 성공 * 그외 : 상점 처리결과 실패 * * ※ 주의사항 : 성공시 'OK' 문자이외의 다른문자열이 포함되면 실패처리 되오니 주의하시기 바랍니다. */ String resultMSG = "결제결과 상점 DB처리(LGD_CASNOTEURL) 결과값을 입력해 주시기 바랍니다."; if (x.LGD_HASHDATA2.Equals(x.LGD_HASHDATA)) { //해쉬값 검증이 성공이면 if (("0000".Equals(x.LGD_RESPCODE))) { //결제가 성공이면 if ("R".Equals(x.LGD_CASFLAG)) { return "OK"; } else if ("I".Equals(x.LGD_CASFLAG)) { /* * 무통장 입금 성공 결과 상점 처리(DB) 부분 * 상점 결과 처리가 정상이면 "OK" */ //if( 무통장 입금 성공 상점처리결과 성공 ) var payvbankin = new PayVBankIn() { payno = GetLong(x.LGD_OID.Substring(2)), uno = 1, uip = GetUserIP(), pgkey = x.LGD_TID, inbankcode = x.LGD_FINANCECODE, vacct = x.LGD_ACCOUNTNUM, inamt = GetInt(x.LGD_CASTAMOUNT), fromname = x.LGD_PAYER, fromymd = x.LGD_PAYDATE, cshrpgkey = x.LGD_CASHRECEIPTNUM, cshrcode =x.LGD_CASHRECEIPTKIND }; int update = 0; if (Dao.Save("pay.paylect.vbankin", payvbankin) < 3) { SetError(payvbankin.payno + " : " + update + "건 업데이트"); //상품구매완료 처리 (최소 3건 업데이트 (payvbankin, pay) return "FAIL"; } return "OK"; } else if ("C".Equals(x.LGD_CASFLAG)) { /* * 무통장 입금취소 성공 결과 상점 처리(DB) 부분 * 상점 결과 처리가 정상이면 "OK" */ //if( 무통장 입금취소 성공 상점처리결과 성공 ) return "OK"; } } else { //결제가 실패이면 /* * 거래실패 결과 상점 처리(DB) 부분 * 상점결과 처리가 정상이면 "OK" */ //if( 결제실패 상점처리결과 성공 ) return "FAIL"; } } else { //해쉬값이 검증이 실패이면 /* * hashdata검증 실패 로그를 처리하시기 바랍니다. */ SetError("Account : XPAYVBankMoney : 1041"); SetError("가상계좌입금오류(결제결과 상점 DB처리(LGD_CASNOTEURL) 해쉬값 검증이 실패): " + x.LGD_OID); } return "FAIL"; } } }