내정보 학습인증수단 변경 추가

This commit is contained in:
lch 2021-06-08 04:04:03 +00:00
parent 955131d670
commit 52c5616da8
9 changed files with 193 additions and 175 deletions

View File

@ -351,7 +351,10 @@
</isEqual>
,status =case when #status# &gt; 0 then #status# else status end
,ischkatt = #ischkatt#
,authplatform = case when #authplatform# &gt; 0 then #authplatform# else authplatform end
,authplatform =case when #authplatform# &gt; 0 then #authplatform# else authplatform end
,di =case when #di# is not null then #di# else di end
,ci =case when #ci# is not null then #ci# else ci end
,vssn =case when #vssn# is not null then #vssn# else vssn end
where userno=#userno#
</update>
<update id="users.exitjoin" parameterClass="hashtable">

View File

@ -468,12 +468,13 @@ namespace NP.FO.Controllers
return View();
}
#region (mobile(,),ipin)
/// <summary>
/// 본인인증 요청(mobile(가입이전,휴대폰인증),ipin)
/// </summary>
/// <param name="sel"></param>
/// <returns></returns>
public ActionResult CertOk3Req(String sel)
public ActionResult CertOk3Req(String sel, String reason)
{
String CP_CD = "V47690000000";
String SITE_NAME = "YNICTE";
@ -481,7 +482,14 @@ namespace NP.FO.Controllers
String REQ_URL = "";
String RETURN_MSG = "";
String SITE_URL = GetConfig("fronturl");
String RQST_CAUS_CD = "00";
//인증요청사유코드
//00 : 회원가입
//01 : 성인인증
//02 : 회원정보수정
//03 : 비밀번호찾기
//04 : 상품구매
//99 : 기타
String RQST_CAUS_CD = reason == "Join" ? "00" : "02";
String target = "PROD";
String param = null;
String RSLT_CD = null;
@ -498,8 +506,8 @@ namespace NP.FO.Controllers
ViewBag.PopupUrl = "";
//return url 설정
RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel;
RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel;
RETURN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason;
RTN_URL = GetConfig("fronturl") + "/Account/CertOk3" + sel + "?reason=" + reason;
//모바일팝업
if (sel == "MOBI" || sel == "MCHK")
{
@ -560,13 +568,15 @@ namespace NP.FO.Controllers
}
ViewBag.result = CP_CD + ":" + RSLT_CD + ":" + RSLT_MSG + ":" + MDL_TKN + ":" + TX_SEQ_No;
return View();
}
}
#endregion
#region
/// <summary>
/// 휴대폰인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3MOBI()
public ActionResult CertOk3MOBI(string reason)
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
@ -635,11 +645,50 @@ namespace NP.FO.Controllers
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))
{
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } });
if (chk.Count() > 0)
if (reason == "Join")
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
}
}
else if (reason == "AuthPlatformChange")
{
if (SUserInfo.UserNo > 0)
{
//정보수정시 본인제외 체크를 위해 usernonot추가
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U999";
RSLT_MSG = "비로그인";
}
}
else if (reason == "MobileNumberChange")
{
if (SUserInfo.UserNo > 0)
{
//정보수정시 본인제외 체크를 위해 usernonot추가
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO }, { "usernonot", SUserInfo.UserNo } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U999";
RSLT_MSG = "비로그인";
}
}
}
else
@ -655,113 +704,18 @@ namespace NP.FO.Controllers
+ 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();
}
/// <summary>
/// 휴대폰인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3MCHK()
{
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))
{
//정보수정시 본인제외 체크를 위해 usernonot추가
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "mobile", TEL_NO },{ "usernonot",SUserInfo.UserNo} });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
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 } });
}
return View();
}
}
#endregion
#region IPIN인증
/// <summary>
/// IPIN인증 결과
/// </summary>
/// <returns></returns>
public ActionResult CertOk3IPIN()
public ActionResult CertOk3IPIN(string reason)
{
String MDL_TKN = Request["MDL_TKN"];
String CP_CD = "V47690000000";
@ -828,11 +782,36 @@ namespace NP.FO.Controllers
//};
if (!string.IsNullOrEmpty(VSSN))
{
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "vssn", VSSN } });
if (chk.Count() > 0)
if (reason == "Join")
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다.";
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "vssn", VSSN } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다.";
}
}
else if (reason == "AuthPlatformChange")
{
if (SUserInfo.UserNo > 0)
{
//정보수정시 본인제외 체크를 위해 usernonot추가
IList<Users> chk = Dao.Get<Users>("users.users", new System.Collections.Hashtable() { { "vssn", VSSN }, { "usernonot", SUserInfo.UserNo } });
if (chk.Count() > 0)
{
RSLT_CD = "U000";
RSLT_MSG = "이미 해당 ipin으로 등록된 회원이 존재합니다.";
}
}
else
{
RSLT_CD = "U999";
RSLT_MSG = "비로그인";
}
}
else if (reason == "LectinningAuth")
{
}
}
else
@ -848,10 +827,12 @@ namespace NP.FO.Controllers
+ 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 } });
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();
}
}
#endregion
public ActionResult NaverCallback()
{

View File

@ -700,7 +700,6 @@
<Content Include="Views\Account\CertOk3Req.cshtml" />
<Content Include="Views\Account\CertOk3MOBI.cshtml" />
<Content Include="Views\Account\CertOk3IPIN.cshtml" />
<Content Include="Views\Account\CertOk3MCHK.cshtml" />
<Content Include="Views\Course\SmartSearch.cshtml" />
<Content Include="Views\My\MyAssInfo.cshtml" />
<Content Include="Views\Course\ApplyEdu.cshtml" />

View File

@ -24,6 +24,8 @@
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'T000') {
@if (ViewBag.reason == "Join") {
<text>
$(opener.document).find("#mform").find("#User_username").val("@(RSLT_NAME)");
$(opener.document).find("#mform").find("#User_birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#User_vssn").val("@(VSSN)");
@ -34,6 +36,28 @@
$(opener.document).find("#mform").attr("action", "/Account/Join");
$(opener.document).find("#mform").submit();
self.close();
</text>
} else if (ViewBag.reason == "AuthPlatformChange") {
<text>
if ("@(RSLT_NAME)" == $(opener.document).find("#mform").find("#username").val()) {
$(opener.document).find("#mform").find("#authplatform").val("@(AuthPlatform.IPIN.GetHashCode())");
$(opener.document).find("#mform").find("#birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#di").val("@(DI)");
$(opener.document).find("#mform").find("#ci").val("@(CI)");
$(opener.document).find("#mform").find("#vssn").val("@(VSSN)");
$(opener.document).find("#mform").find("#authPlatform_IPIN").show();
$(opener.document).find("#mform").find("#authPlatform_Mobile").hide();
alert("인증완료");
} else {
alert("입력한 정보와 일치하지 않습니다.\n 재인증해주세요.");
}
self.close();
</text>
} else if (ViewBag.reason == "LectinningAuth") {
<text>
self.close();
</text>
}
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();

View File

@ -1,49 +0,0 @@
@{
Layout = null;
var CP_CD = (ViewBag.result ?? "").Split(':')[0];
var TX_SEQ_NO = (ViewBag.result ?? "").Split(':')[1];
var RSLT_CD = (ViewBag.result ?? "").Split(':')[2];
var RSLT_MSG = (ViewBag.result ?? "").Split(':')[3];
var RSLT_NAME = (ViewBag.result ?? "").Split(':')[4];
var RSLT_BIRTHDAY = (ViewBag.result ?? "").Split(':')[5];
var RSLT_SEX_CD = (ViewBag.result ?? "").Split(':')[6];
var RSLT_NTV_FRNR_CD = (ViewBag.result ?? "").Split(':')[7];
var DI = (ViewBag.result ?? "").Split(':')[8];
var CI = (ViewBag.result ?? "").Split(':')[9];
var CI_UPDATE = (ViewBag.result ?? "").Split(':')[10];
var TEL_COM_CD = (ViewBag.result ?? "").Split(':')[11];
var TEL_NO = (ViewBag.result ?? "").Split(':')[12];
var RETURN_MSG = (ViewBag.result ?? "").Split(':')[13];
}
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script>
<div>
</div>
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'B000') {
//이름일치 확인
if ("@(RSLT_NAME)" == $(opener.document).find("#mform").find("#username").val()) {
$(opener.document).find("#mform").find("#intval2").val(1);
$(opener.document).find("#mform").find("#mobile").val("@(TEL_NO)".replaceAll("-", ""));
$(opener.document).find("#mform").find("#mobilestr").text("@(TEL_NO)".replaceAll("-", ""));
alert("인증완료");
} else {
$(opener.document).find("#mform").find("#intval2").val(0);
$(opener.document).find("#mform").find("#mobile").val("");
$(opener.document).find("#mform").find("#mobilestr").text("");
alert("입력한 정보와 일치하지 않습니다.\n 재인증해주세요.");
}
self.close();
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();
}
} else {
alert("인증결과 요청 실패 :" + "@(ViewBag.ret)");
self.close();
}
});
</script>

View File

@ -21,10 +21,12 @@
<div>
</div>
<script type="text/javascript">
<script type="text/javascript">
$(document).ready(function () {
if ('@(ViewBag.ret)' == '0') {
if ('@(RSLT_CD)' == 'B000') {
@if (ViewBag.reason == "Join") {
<text>
$(opener.document).find("#mform").find("#User_username").val("@(RSLT_NAME)");
$(opener.document).find("#mform").find("#User_birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#User_mobile").val("@(TEL_NO)");
@ -36,6 +38,39 @@
$(opener.document).find("#mform").attr("action", "/Account/Join");
$(opener.document).find("#mform").submit();
self.close();
</text>
} else if (ViewBag.reason == "MobileNumberChange") {
<text>
if ("@(RSLT_NAME)" == $(opener.document).find("#mform").find("#username").val()) {
$(opener.document).find("#mform").find("#mobile").val("@(TEL_NO)".replaceAll("-", ""));
$(opener.document).find("#mform").find("#mobilestr").text("@(TEL_NO)".replaceAll("-", ""));
alert("인증완료");
} else {
$(opener.document).find("#mform").find("#mobile").val("");
$(opener.document).find("#mform").find("#mobilestr").text("");
alert("입력한 정보와 일치하지 않습니다.\n 재인증해주세요.");
}
self.close();
</text>
} else if (ViewBag.reason == "AuthPlatformChange") {
<text>
if ("@(RSLT_NAME)" == $(opener.document).find("#mform").find("#username").val()) {
$(opener.document).find("#mform").find("#authplatform").val("@(AuthPlatform.Mobile.GetHashCode())");
$(opener.document).find("#mform").find("#authPlatform_IPIN").hide();
$(opener.document).find("#mform").find("#authPlatform_Mobile").show();
$(opener.document).find("#mform").find("#birthday").val("@(RSLT_BIRTHDAY)");
$(opener.document).find("#mform").find("#di").val("@(DI)");
$(opener.document).find("#mform").find("#ci").val("@(CI)");
$(opener.document).find("#mform").find("#mobile").val("@(TEL_NO)".replaceAll("-", ""));
$(opener.document).find("#mform").find("#mobile").prop("readonly", true);
$(opener.document).find("#mform").find("#mobilestr").text("@(TEL_NO)".replaceAll("-", ""));
alert("인증완료");
} else {
alert("입력한 정보와 일치하지 않습니다.\n 재인증해주세요.");
}
self.close();
</text>
}
} else {
alert("인증요청 실패 : " + "@(RSLT_MSG)");
self.close();

View File

@ -21,14 +21,14 @@
<div class="jnsCont">
<img src="../img/common/join_select01.png" alt="i-PIN 인증">
<p>i-PIN 인증</p>
<a href="#" onclick="mobilechkview('IPIN');">인증하기</a>
<a href="#" onclick="mobilechkview('IPIN', 'Join');">인증하기</a>
</div>
</div>
<div>
<div class="jnsCont">
<img src="../img/common/join_select02.png" alt="휴대폰 본인인증">
<p>휴대폰 본인인증</p>
<a href="#" onclick="mobilechkview('MOBI');">인증하기</a>
<a href="#" onclick="mobilechkview('MOBI', 'Join');">인증하기</a>
</div>
</div>
@*<div>

View File

@ -1,4 +1,5 @@
@model NP.Model.VMMy
@using NP.Model.ENUM
@model NP.Model.VMMy
@{
var a = Model.Assign;
var u = Model.User;
@ -19,6 +20,9 @@
</ul>
<input type="hidden" name="username" id="username" value="@u.username" />
<input type="hidden" name="birthday" id="birthday" value="@u.birthday" />
<input type="hidden" name="di" id="di" value="@(u.di)" />
<input type="hidden" name="ci" id="ci" value="@(u.ci)" />
<input type="hidden" name="vssn" id="vssn" value="@(u.vssn)" />
<table class="clsTable">
<tbody>
<tr><th>ID</th><td><p>@u.userid</p></td></tr>
@ -79,12 +83,33 @@
}
</td>
</tr>
<tr>
<th>학습인증수단</th>
<td>
<div class="mdfyBirth">
<input type="hidden" name="authplatform" id="authplatform" value="@(u.authplatform.GetHashCode())" />
<div id="authPlatform_IPIN" @(u.authplatform == AuthPlatform.Mobile ? "style=display:none;" : "")>
<p id="authPlatformName">I-PIN 인증</p><a href="#" onclick="mobilechkview('MOBI', 'AuthPlatformChange');" style="width:150px;">휴대폰 인증으로 변경</a>
</div>
<div id="authPlatform_Mobile" @(u.authplatform == AuthPlatform.IPIN ? "style=display:none;" : "") >
<p id="authPlatformName">휴대폰 인증</p><a href="#" onclick="mobilechkview('IPIN', 'AuthPlatformChange');" style="width:150px;">I-PIN 인증으로 변경</a>
</div>
</div>
</td>
</tr>
<tr>
<th>연락처</th>
<td>
<div class="mdfyBirth">
<input type="hidden" name="mobile" id="mobile" value="@(u.mobile)" />
<p id="mobilestr">@(u.mobile)</p><a href="#" onclick="mobilechkview('MCHK');">수정</a>
@if(u.authplatform == AuthPlatform.Mobile)
{
<input type="hidden" name="mobile" id="mobile" value="@(u.mobile)" />
<p id="mobilestr">@(u.mobile)</p><a href="#" onclick="mobilechkview('MOBI', 'MobileNumberChange');">수정</a>
}
else
{
<input type="text" id="mobile" class="int nocomma" name="mobile" maxlength="13" placeholder="휴대전화번호" value="@(u.mobile)" >
}
</div>
</td>
</tr>

View File

@ -17,8 +17,8 @@
var pop;
$(document).ready(function () {
});
function mobilechkview(sel) {
var popupWindow = window.open("/Account/CertOk3Req?sel=" + sel, "auth_popup", "width=450,height=640,scrollbar=yes,resizable=no");
function mobilechkview(sel, reason) {
var popupWindow = window.open("/Account/CertOk3Req?sel=" + sel + "&reason=" + reason, "auth_popup", "width=450,height=640,scrollbar=yes,resizable=no");
popupWindow.focus();
}
</script>