Advertisement
Guest User

Untitled

a guest
Sep 17th, 2017
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 53.15 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>用户登录</title>
  6. <meta name="keywords" content="" />
  7. <meta name="description" content="" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  9. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  10. <link rel="shortcut icon" href="https://ssl.suning.com/favicon.ico" type="image/x-icon">
  11. <script type="text/javascript">
  12. //全局变量
  13. var sn = sn || {};
  14. </script>
  15. <!-- 引入全站公用资源文件 -->
  16. <link rel="stylesheet" type="text/css" href="https://sslres.suning.com/project/passport/login/b2c_popV5/css/??v3common.min.css,login.css?v=20170421" />
  17. <script type="text/javascript">
  18. var sn = sn || {};
  19. //全局变量
  20. var sn_domain = "http://www.suning.com";
  21. var server_prefix_domain = "https://ssl.suning.com/emall/";
  22. var srs_prefix_domain = "https://reg.suning.com/";
  23. var asc_prefix_domain = "https://aq.suning.com/asc/";
  24. var passport_domain = "https://passport.suning.com";
  25. var sop_prefix_domain = "https://sopssl.suning.com/";
  26. var goUrl = "http://www.suning.com/";
  27. var dt_Siller_Url = "https://dt.suning.com/detect/dt/dragDetect.json";
  28.  
  29. var loginPBK="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQComqoAyvbCqO1EGsADwfNTWFQIUbm8CLdeb9TgjGLcz95mAo204SqTYdSEUxFsOnPfROOTxhkhfjbRxBV4/xjS06Y+kkUdiMGFtABIxRQHQIh0LrVvEZQs4NrixxcPI+b1bpE0gO/GAFSNWm9ejhZGj7UnqiHphnSJAVQNz2lgowIDAQAB";
  30.  
  31. var companycard_url = srs_prefix_domain + "companycardshow.do";
  32. //人工审核地址
  33. var asc_selfService_URL = asc_prefix_domain + "selfService/show.do";
  34. //登录建议URL
  35. var loginAdvise_Url = "http://ued.suning.com/survey/express/d29va1Nr";
  36. //下载易购appURL
  37. var downLoadApp_Url = "http://sale.suning.com/syb/20120419xsjkhd/index.html";
  38. //忘记密码
  39. var forgetPwd_URL = asc_prefix_domain + "forgetpsw.do";
  40. //会员卡连接地址
  41. var memberCard_URL = srs_prefix_domain + "b2cMemberCard/offline/cardLogin.do";
  42.  
  43. var autoLoginCookie_expireDay = 30;
  44. </script>
  45. </head>
  46. <!--[if lt IE 7 ]><body class="ie ie6"><![endif]-->
  47. <!--[if IE 7 ]><body class="ie ie7"><![endif]-->
  48. <!--[if IE 8 ]><body class="ie ie8"><![endif]-->
  49. <!--[if IE 9 ]><body class="ie9"><![endif]-->
  50. <!--[if (gt IE 9)|!(IE)]><!-->
  51. <body><!--<![endif]-->
  52. <div class="login-dialog login-form">
  53. <a href="javascript:void(0)" class="close" id="close-pop"></a>
  54. <div class="dialog-mask"></div>
  55. <div class="pc-login">
  56. <div class="login-tab">
  57. <a href="javascript:void(0);" class="tab-item on" style="border-right:1px solid #ddd">登录</a>
  58. <a href="javascript:freeToRegClick();" class="tab-item" name="TLogon_index_none_dl002">注册</a>
  59. </div>
  60. <div class="username-login">
  61. <div>
  62. <div class="login-warning" style="display:none;"><i></i><span>公共场所不建议自动登录!</span></div>
  63. <div class="login-error" style="display:none;"><i></i><span>账户名与密码不匹配请重新输入!<a href="#">忘记密码</a></span></div>
  64. <div class="login-blank" style="line-height:24px;">&nbsp;</div>
  65. </div>
  66. <div class="username-box">
  67. <div class="input-box" id="showErrorUsernameDiv">
  68. <input id="userName" type="text" autocomplete="off" tabindex="1" value="">
  69. <label>用户名/手机/邮箱/门店会员卡号</label>
  70. <i class="icon username-icon"></i>
  71. <i class="clear"></i>
  72. </div>
  73. <div class="email-list hide"></div>
  74. </div>
  75. <div class="password-box">
  76. <div class="input-box" id="showErrorPwdDiv">
  77. <input id="password" type="password" autocomplete="off" tabindex="2">
  78. <label>密码</label>
  79. <i class="icon password-icon"></i>
  80. <i class="clear"></i>
  81. </div>
  82. </div>
  83. <div class="verify-box clearfix showErrorVerifyCodeDiv" style="display:none;">
  84. <div class="input-box">
  85. <input class="validate" type="text" maxlength="4" autocomplete="off" tabindex="3">
  86. <label>验证码</label>
  87. <i class="icon verify-icon"></i>
  88. <i class="clear"></i>
  89. <i class="ok"></i>
  90. <i class="error"></i>
  91. </div>
  92. <a name="TLogon_index_none_dl004" href="javascript:void(0)" class="verify-code">
  93. <img id="imageCode1" src="" alt="图形验证码">
  94. <span>换一张</span>
  95. </a>
  96. </div>
  97. <div id="TLogon_index_none_dl020" class="siller-box sillerVerifyCode" style="display:none;">
  98. <div id="siller1"></div>
  99. </div>
  100. </div>
  101. <div class="phone-login">
  102. <div>
  103. <div class="login-warning" style="display:none;"><i></i><span>公共场所不建议自动登录!</span></div>
  104. <div class="login-error" style="display:none;"><i></i><span>账户名与密码不匹配请重新输入!<a href="#">忘记密码</a></span></div>
  105. <div class="login-blank" style="line-height:24px;">&nbsp;</div>
  106. </div>
  107. <div class="phone-box">
  108. <div class="input-box" id="showErrorPhoneNumberDiv">
  109. <input id="phoneNumber" type="text" autocomplete="off" tabindex="1" maxlength="11">
  110. <label>手机号码</label>
  111. <i class="icon username-icon"></i>
  112. <i class="clear"></i>
  113. </div>
  114. </div>
  115. <div class="verify-box clearfix showErrorVerifyCodeDiv" style="display:none;">
  116. <div class="input-box">
  117. <input class="validate" type="text" maxlength="4" autocomplete="off" tabindex="2">
  118. <label>验证码</label>
  119. <i class="icon verify-icon"></i>
  120. <i class="clear"></i>
  121. <i class="ok"></i>
  122. <i class="error"></i>
  123. </div>
  124. <a name="TLogon_index_none_dl021" href="javascript:void(0)" class="verify-code">
  125. <img id="imageCode2" src="" alt="图形验证码">
  126. <span>换一张</span>
  127. </a>
  128. </div>
  129. <div id="TLogon_index_none_dl020" class="siller-box sillerVerifyCode" style="display:none;">
  130. <div id="siller2"></div>
  131. </div>
  132. <div class="sms-box clearfix">
  133. <div class="input-box" id="showErrorSmsCodeDiv">
  134. <input id="smsCode" type="text" autocomplete="off" tabindex="3" maxlength="6">
  135. <label>手机验证码</label>
  136. <i class="icon password-icon"></i>
  137. <i class="clear"></i>
  138. </div>
  139. <a name="TLogon_index_none_dl022" href="javascript:void(0)" class="send-sms">获取验证码</a>
  140. </div>
  141. <div style="padding-top: 2px;">
  142. <p class="sms-sent">验证码已发送到您的手机,<em>5</em>分钟内有效</p>
  143. <div class="voice-verify clearfix">
  144. <span>如果您收不到验证码?</span>
  145. <a name="TLogon_index_none_dl023" href="javascript:void(0)" class="send-voice">获取语音验证码</a>
  146. </div>
  147. <div class="voice-sent clearfix">
  148. <span>电话拨打中</span>
  149. <i></i>
  150. </div>
  151. <div class="blank">&nbsp;</div>
  152. </div>
  153. </div>
  154. <div class="login-help clearfix">
  155. <div class="auto-login">
  156. <input name="TLogon_index_none_dl009" type="checkbox" id="rememberMe" checked>
  157. <label for="auto-login">自动登录</label>
  158. </div>
  159. <a id="FORGET_PWD" href="javascript:void(0);" class="forget-password" target="_blank" name="TLogon_index_none_dl005">忘记密码?</a>
  160. </div>
  161. <a id="submit" href="javascript:void(0)" onclick="javascript:prepareLoginSubmit();return false;" class="login-submit" name="TLogon_index_none_dl003">登 录</a>
  162.  
  163. <div class="switch-login-type">
  164. <a name="TLogon_index_none_dl024" href="javascript:void(0)">切换为 手机验证码登录 &gt;</a>
  165. </div>
  166. </div>
  167. </div>
  168. <script type="text/javascript" src="https://sslres.suning.com/public/v3/js/jquery.js?v=20170421"></script>
  169. <script type="text/javascript" src="https://dt.suning.com/detect/dt/siller.js?v=20170421"></script>
  170. <script type="text/javascript" src="https://sslres.suning.com/project/passport/login/b2c_popV5/js/??login_pop.min.js,popupContainerHandler.min.js,security.min.js?v=20170421"></script>
  171.  
  172. <script type="text/javascript">
  173. /*
  174. //获取到的目标地址 将请求路径中的&amp; 替换为 &
  175. var service = "https://aq.suning.com/asc/auth?targetUrl=https%3A%2F%2Floginst.suning.com%2FpopupLoginSuccess%3FtopLocation%3Dhttps%253A%252F%252Fcuxiao.suning.com%252F915djpjlzn.html";
  176. service = service.replaceAll('&amp;','&');
  177. //保存是从哪里请求的路径 将请求路径中的&amp; 替换为 &
  178. var serviceStr ="";
  179. if(service != "" && service.length != 0){
  180. var index = service.indexOf("targetUrl=");
  181. if(index < 0){
  182. goUrl = service;//目标跳转地址
  183. serviceStr = decodeURIComponent(goUrl.substring(goUrl.indexOf("topLocation") + 12)); //已解码 父页面地址
  184. }else{
  185. goUrl = decodeURIComponent(service.substring(index+10));
  186. serviceStr = decodeURIComponent(goUrl.substring(goUrl.indexOf("topLocation") + 12)); //已解码 父页面地址
  187. }
  188. }
  189. */
  190. var popup_container_handler_config = {
  191. // topLocation : serviceStr
  192. };
  193.  
  194. //免费注册
  195. var freeToReg_URL = srs_prefix_domain + "popreg.do?topLocation="+serviceStr;
  196.  
  197. //needVerifyCode:表示是否需要输入验证码
  198. var needVerifyCodeVal=false;
  199. var isUseSlideVerifycode=false;
  200. var slideVerifycode="";
  201. //是否中文验证码
  202. var chineseValiCode = "false";
  203.  
  204. //图片验证码输错三次才刷新
  205. var gImgVerCdeErrorCount = 0;
  206. //最近一次输入的图片验证码,不重复校验相同的图片验证码
  207. var gLastImgValCode = "";
  208. var gLastImgValCodeResult = false;
  209.  
  210. //生成登陆之后的调整路径
  211. function getGoUrl(){
  212. if(service != "" && service.length != 0){
  213. var index = service.indexOf("targetUrl=");
  214. if(index < 0){
  215. goUrl = service;
  216. }else{
  217. goUrl = decodeURIComponent(service.substring(index+10));
  218. }
  219. }
  220. try{
  221. var pattern = /.*?\.(suning|cnsuning|suningcloud|wuliuyun|snjijin)\.(com|cn)$/;
  222. var a_goUrl = parseURL(goUrl);
  223. if(!pattern.test(a_goUrl.host)){
  224. goUrl = sn_domain;
  225. }
  226. }catch(e){}
  227. }
  228. function parseURL(url) {
  229. var getGoUrl_a = document.createElement('a');
  230. getGoUrl_a.href = url;
  231. return {
  232. source: url,
  233. protocol: getGoUrl_a.protocol.replace(':', ''),
  234. host: getGoUrl_a.hostname,
  235. port: getGoUrl_a.port,
  236. query: getGoUrl_a.search,
  237. params: (function() {
  238. var ret = {},
  239. seg = getGoUrl_a.search.replace(/^\?/, '').split('&'),
  240. len = seg.length,
  241. i = 0,
  242. s;
  243. for (; i < len; i++) {
  244. if (!seg[i]) {
  245. continue;
  246. }
  247. s = seg[i].split('=');
  248. ret[s[0]] = s[1];
  249. }
  250. return ret;
  251. })(),
  252. file: (getGoUrl_a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
  253. hash: getGoUrl_a.hash.replace('#', ''),
  254. path: getGoUrl_a.pathname.replace(/^([^\/])/, '/$1'),
  255. relative: (getGoUrl_a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
  256. segments: getGoUrl_a.pathname.replace(/^\//, '').split('/')
  257. };
  258. }
  259.  
  260. //免费注册
  261. function freeToRegClick(){
  262. location.href = freeToReg_URL;
  263. }
  264. //忘记密码
  265. function forgetPwdClick(){
  266. $("#FORGET_PWD").attr("href",forgetPwd_URL);
  267. }
  268.  
  269. //检测华夏基金等信任登录的cookies信息
  270. function checkTrustCookie() {
  271. //信任登录未绑定的标记
  272. var trustbinding = login.getCookie('trust_user_not_binding');
  273. if ( trustbinding != null && trustbinding != "") {
  274. var redirectUrl = comm_bind_url + "?trustType=normal&bindingTicket="+trustbinding+"&targetUrl="+decodeURIComponent(serviceStr);
  275. setTimeout(function(){parent.location.href = popup_container_handler_config.topLocation + "#loginRedirect:"+encodeURIComponent(redirectUrl) ;},1000)
  276. }
  277. }
  278.  
  279. //图片验证码
  280. function fun_getVcode() {
  281. gImgVerCdeErrorCount = 0;
  282. //重新加载图片验证码
  283. if($('.login-form .verify-code img:visible').length > 0){
  284. $('.login-form .verify-code img:visible')[0].src = 'https://vcs.suning.com/vcs/imageCode.htm?uuid='
  285. + "8bb1033d-93e6-42ac-8e00-cecbaee6368c" + "&sceneId=logonImg&yys=" + new Date().getTime();
  286. }
  287. cleanVerifyCodeError();
  288. }
  289.  
  290. //登陆初始化默认
  291. function showScanhide(){
  292. $('.login-error').find('span').html('');
  293. $('.login-blank').show().siblings().hide();
  294. login.autoLoginCheck(0);
  295. $("#showErrorUsernameDiv").removeClass("input-error");
  296. $("#showErrorPwdDiv").removeClass("input-error");
  297. $(".showErrorVerifyCodeDiv .input-box").removeClass("input-error");
  298. $("#showErrorPhoneNumberDiv").removeClass("input-error");
  299. $("#showErrorSmsCodeDiv").removeClass("input-error");
  300. }
  301. function showErrorInfo(msg,inputId){
  302. $('.login-error').find('span').html(msg);
  303. $('.login-error').show().siblings().hide();
  304. if(inputId){
  305. $("#" + inputId + "").addClass("input-error");
  306. }
  307. if(inputId == 'showErrorVerifyCodeDiv'){
  308. $("." + inputId + "").find('.input-box').addClass("input-error");
  309. }
  310. }
  311. function hideErrorInfo(){
  312. showScanhide();
  313. }
  314. //显示图片验证码正确
  315. function showVerifyCodeOK(){
  316. var codeObj = $('.verify-box .input-box input');
  317. codeObj.siblings('.clear,.error').hide();
  318. codeObj.siblings('.ok').show();
  319. }
  320. //显示图片验证码错误
  321. function showVerifyCodeError(){
  322. var codeObj = $('.verify-box .input-box input');
  323. codeObj.siblings('.clear,.ok').hide();
  324. codeObj.siblings('.error').show();
  325. }
  326. //清除图片验证码提示
  327. function cleanVerifyCodeError(){
  328. var codeObj = $('.verify-box .input-box input');
  329. codeObj.siblings('.ok,.error').hide();
  330. $(".validate:visible").val("");
  331. $(".validate:visible").blur();
  332. }
  333. //普通登录处理回车事件
  334. function onNormalLogonKeyPress(evt) {
  335. //兼容IE和Firefox获得keyBoardEvent对象
  336. evt = (evt) ? evt : ((window.event) ? window.event : "")
  337. //兼容IE和Firefox获得 keyBoardEvent对象的键值
  338. var keyCode = evt.keyCode?evt.keyCode:evt.which;
  339. if(keyCode==13) {
  340. prepareLoginSubmit();
  341. }
  342. }
  343. //判断大小写锁定
  344. function checkCapsLock(evt){
  345. //兼容IE和Firefox获得keyBoardEvent对象
  346. evt = (evt) ? evt : ((window.event) ? window.event : "")
  347. //兼容IE和Firefox获得 keyBoardEvent对象的键值
  348. var keyCode = evt.keyCode?evt.keyCode:evt.which;
  349. var isShift = evt.shiftKey ||(keyCode == 16 ) || false ;
  350.  
  351. if (((keyCode >= 65 && keyCode <= 90 ) && !isShift)
  352. || ((keyCode >= 97 && keyCode <= 122 ) && isShift)
  353. ){
  354. $('.login-warning').find('span').html("键盘大写锁定已打开,请注意大小写");
  355. $('.login-warning').show().siblings().hide();
  356. }else{
  357. var msg = $(".login-warning").html();
  358. //当在密码输入框中输入正常的时候,错误提示的内容是"键盘大写",的时候,错误提示消失
  359. if(msg.indexOf("键盘大写")!=-1){
  360. showScanhide();
  361. }
  362. }
  363. }
  364. //普通登录:提交时检查账号
  365. function checkNormalLogonIdOnSubmit() {
  366. // 清掉服务器错误消息
  367. hideErrorInfo();
  368. var eml = $('#userName').val();
  369. if (eml == null || eml == "") {
  370. showErrorInfo("请输入用户名/邮箱/手机号!","showErrorUsernameDiv");
  371. return false;
  372. }
  373. if (eml.length != 0 && eml.length < 50
  374. && eml.match( /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ )){
  375. $('#userName').val(eml.toLowerCase());
  376. } else {
  377. $('#userName').val(eml);
  378. }
  379. hideErrorInfo();
  380. return true;
  381. }
  382. //普通登录:提交时检查密码
  383. function checkNormalLogonPwdOnSubmit() {
  384. // 清掉服务器错误消息
  385. hideErrorInfo();
  386. var pwd = $('#password').val();
  387. pwd = pwd.Trim();
  388. if (pwd.length<6 || pwd.length>20) {
  389. showErrorInfo("请输入6-20位密码!","showErrorPwdDiv");
  390. return false;
  391. } else {
  392. hideErrorInfo();
  393. return true;
  394. }
  395. }
  396. //图片验证码位置按键的弹起事件
  397. function onKeyUpForValidate(evt){
  398. //兼容IE和Firefox获得keyBoardEvent对象
  399. evt = (evt) ? evt : ((window.event) ? window.event : "")
  400. //兼容IE和Firefox获得 keyBoardEvent对象的键值
  401. var keyCode = evt.keyCode?evt.keyCode:evt.which;
  402.  
  403. if(keyCode==13) {
  404. prepareLoginSubmit();
  405. }else{
  406. checkNormalLogonValidateCodeOnBlur();
  407. }
  408. }
  409. //图片验证码框中焦点移除的时候,进行提示
  410. function checkValidateCodeOnBlur(){
  411. var vcd = $('.validate:visible').val();
  412. if (vcd == null || vcd == "") {
  413. return;
  414. }else if(vcd.length == 4){
  415. //没有在提交中的时候进行提交操作 4个长度的时候需要是字符数字, 3个长度的时候需要是汉字
  416. return;
  417. }else{
  418. //showVerifyCodeError();
  419. return;
  420. }
  421. }
  422. // 普通登录:失去焦点时检查图片验证码
  423. function checkNormalLogonValidateCodeOnBlur() {
  424. // 清掉服务器错误消息
  425. var vcd = $('.validate:visible').val();
  426. if (vcd == null || vcd == "") {
  427. return false;
  428. } else if(vcd.length == 4){
  429. //没有在提交中的时候进行提交操作 4个长度的时候需要是字符数字, 3个长度的时候需要是汉字
  430. if(chineseValiCode == "true"){
  431. if(isChineseStr(vcd)){
  432. checkImageValCode();
  433. }
  434. }else{
  435. checkImageValCode();
  436. }
  437. return true;
  438. }
  439. }
  440. function checkInputEvent(){
  441. $("#userName").blur(function(){
  442. checkShowImageCode();
  443. });
  444. $("#userName").keypress(function(){
  445. onNormalLogonKeyPress();
  446. });
  447. $("#phoneNumber").blur(function(){
  448. checkSmsLoginPhone();
  449. });
  450. $("#password").keypress(onNormalLogonKeyPress);
  451. $("#password").keypress(checkCapsLock);
  452. //实时校验
  453. $(".validate").keyup(onKeyUpForValidate);
  454. $(".validate").blur(checkValidateCodeOnBlur);
  455. }
  456.  
  457. //是否显示图片验证码
  458. function checkShowImageCode(){
  459. var logonIdval = $('#userName').val().Trim();
  460. if(logonIdval.length > 0){
  461. userNameBlur("#userName",'');
  462. }
  463. }
  464. //异步是指动态验证码是否显示
  465. function userNameBlur(o,v){
  466. if ($(o).val().Trim().length >0){
  467. var userNameVal=$(o).val();
  468. userNameVal = userNameVal.Trim();
  469. $.ajax( {
  470. type : 'POST',
  471. url : 'needVerifyCode',
  472. data : 'username='+encodeURIComponent(userNameVal),
  473. dataType : 'json',
  474. success : function(data) {
  475. if(data&& data.needVerifyCode){
  476. if (!needVerifyCodeVal) {
  477. needVerifyCodeVal=true;
  478. showAndHideVerifyCode(needVerifyCodeVal,isUseSlideVerifycode);
  479. }
  480. }else if(data&& !data.needVerifyCode){
  481. if (needVerifyCodeVal) {
  482. needVerifyCodeVal=false;
  483. showAndHideVerifyCode(needVerifyCodeVal,null);
  484. }
  485. }
  486. },
  487. error : function(data) {
  488. }
  489. });
  490. }
  491. };
  492. //初始化显示图片验证码是否显示
  493. function initShowVerifyCode(){
  494. showAndHideVerifyCode(needVerifyCodeVal,isUseSlideVerifycode);
  495. }
  496. //显示隐藏验证码
  497. function showAndHideVerifyCode(isNeedVerifyCodeVal,isUseSlideVerifycodeVal){
  498. if(isNeedVerifyCodeVal){
  499. if(isUseSlideVerifycodeVal){
  500. $(".sillerVerifyCode").show();
  501. }else{
  502. $(".showErrorVerifyCodeDiv").show();
  503. fun_getVcode();
  504. }
  505. }else{
  506. $(".sillerVerifyCode").hide();
  507. $(".showErrorVerifyCodeDiv").hide();
  508. }
  509. }
  510. //图片验证码长度大于4的时候进行图片验证码的校验
  511. function checkImageValCode(){
  512. var imageValCode = $(".validate:visible").val();
  513. var vcd = $.trim(imageValCode);
  514. if(vcd.length == 4){
  515. return ajaxCheckVerifyCodeOrSubmit(false);
  516. }
  517. }
  518. //图片验证码框中焦点移除的时候,进行提示
  519. function checkValidateCodeOnSubmit(){
  520. if(isUseSlideVerifycode){
  521. if (siller.status == 0 || null == slideVerifycode || slideVerifycode == "" ) {
  522. showErrorInfo("为了你的账户安全,请拖动滑块完成验证。");
  523. return false;
  524. }else{
  525. //已经完成滑动验证
  526. return true;
  527. }
  528. }else{
  529. var vcd = $('.validate:visible').val();
  530. if (vcd == null || vcd == "") {
  531. showErrorInfo("请输入图片验证码","showErrorVerifyCodeDiv");
  532. return false;
  533. }else if(vcd.length == 4){
  534. //没有在提交中的时候进行提交操作 4个长度的时候需要是字符数字, 3个长度的时候需要是汉字
  535. return true;
  536. }else{
  537. showErrorInfo("验证码不正确,请重新输入。","showErrorVerifyCodeDiv");
  538. return false;
  539. }
  540. }
  541. }
  542. //检查是否是上次用Ajax校验过的图片验证码,如果是,返回true, 如果不是,则记录下来,返回false
  543. function isLastImgValCode(code) {
  544. if (gLastImgValCode == code) {
  545. return true;
  546. } else {
  547. gLastImgValCode = code;
  548. return false;
  549. }
  550. }
  551. //图片验证码的异步校验
  552. //isSubmit:是否进行提交 true:表示验证成功之后进行提交操作 ; false:表示仅仅进行验证
  553. function ajaxCheckVerifyCodeOrSubmit(isSubmit) {
  554. if(isUseSlideVerifycode){
  555. if (siller.status == 0 || null == slideVerifycode || slideVerifycode == "" ) {
  556. showErrorInfo("为了你的账户安全,请拖动滑块完成验证。");
  557. return false;
  558. }else{
  559. //进行提交操作
  560. if(login.userLoginType == "smsLogin"){
  561. ajaxSmsLogonSubmit();
  562. }else{
  563. loginSubmit();
  564. }
  565. }
  566. }else{
  567. //用户输入的验证码code
  568. var code = $(".validate:visible").val();
  569. if (!isSubmit && isLastImgValCode(code)) {
  570. if(gLastImgValCodeResult){
  571. showVerifyCodeOK();
  572. }else{
  573. showVerifyCodeError();
  574. }
  575. return;
  576. }
  577. //请求时所传参数
  578. var param = {
  579. code : code,
  580. uuid : "8bb1033d-93e6-42ac-8e00-cecbaee6368c",
  581. delFlag : 0
  582. };
  583. $.ajax({
  584. //请求类型
  585. type : 'POST',
  586. //发送验证请求的url
  587. url : "https://vcs.suning.com/vcs/validate_jsonp.htm",
  588. //请求时所传参数
  589. data : param,
  590. //返回数据类型
  591. dataType : 'jsonp',
  592. //回调函数方法名
  593. jsonp : 'callback',
  594. //请求成功后的回调函数
  595. success : function(data) {
  596. //显示验证结果
  597. if(data[0].result == 'true'){
  598. gLastImgValCodeResult = true;
  599. hideErrorInfo();
  600. showVerifyCodeOK();
  601. if(isSubmit){
  602. //进行提交操作
  603. if(login.userLoginType == "smsLogin"){
  604. ajaxSmsLogonSubmit();
  605. }else{
  606. loginSubmit();
  607. }
  608. }
  609. }else{
  610. gLastImgValCodeResult = false;
  611. // 当输入满4位时,鼠标未移出就开始校验图片验证码正确性。若连续输入错误3 次,系统自动刷新图片验证码。
  612. gImgVerCdeErrorCount++;
  613. if (gImgVerCdeErrorCount >= 3 || isSubmit) {
  614. fun_getVcode();
  615. }else{
  616. showVerifyCodeError();
  617. }
  618. showErrorInfo("验证码不正确,请重新输入。","showErrorVerifyCodeDiv");
  619. }
  620. }
  621. });
  622. }
  623. }
  624.  
  625. //显示服务器返回的错误信息
  626. function showServerErrorMsg(data) {
  627. if(isUseSlideVerifycode){
  628. slideVerifycode = "";
  629. $('#siller1').empty();
  630. login.siller('siller1');
  631. }
  632. var errorCode= "";
  633. if(login.isNotEmpty(data) && login.isNotEmpty(data.errorCode)){
  634. errorCode = data.errorCode;
  635. }
  636. var errorMessage="" ;
  637. if(login.isNotEmpty(data) && login.isNotEmpty(data.errorMessage)){
  638. errorMessage = data.errorMessage;
  639. }
  640. var remainTimes ="";
  641. if(login.isNotEmpty(data) && login.isNotEmpty(data.remainTimes)){
  642. remainTimes = data.remainTimes;
  643. }
  644. var snMemberErrorCode = "";
  645. if(login.isNotEmpty(data) && login.isNotEmpty(data.snMemberErrorCode)){
  646. snMemberErrorCode = data.snMemberErrorCode;
  647. }
  648. var logonId = "";
  649. if(login.isNotEmpty(data) && login.isNotEmpty(data.username)){
  650. logonId = data.username;
  651. }else{
  652. logonId = $('#userName').val();
  653. logonId = logonId.Trim();
  654. }
  655.  
  656. var offlineMemberId = "";
  657. if(login.isNotEmpty(data) && login.isNotEmpty(data.offlineMemberId)){
  658. offlineMemberId = data.offlineMemberId;
  659. }
  660.  
  661. //snMemberErrorCode中的错误提示信息
  662. if(snMemberErrorCode=="E4700A40"|| errorCode=="E4700A40"){
  663. errorMessage = "该账号密码存在安全风险,请立即<a name='Logon_index_denglu001' href='"+forgetPwd_URL+"' target='_blank' style='float:none'>重置密码</a>。";
  664. showErrorInfo(errorMessage);
  665. return;
  666. }else if(snMemberErrorCode=="E4700440" || errorCode=="E4700440" ||
  667. snMemberErrorCode=="E4700456" || errorCode=="E4700456" ||
  668. snMemberErrorCode=="E4700A37" || errorCode=="E4700A37" ){
  669. //E4700456 卡不存在 //E4700A37您输入的账号不存在,请重新输入!
  670. errorMessage='该账户名不存在,<a name="TLogon_index_none_dl007" href="javascript:void(0);" onclick="javascript:forgetLoginName();">忘记账户名</a>或';
  671. errorMessage= errorMessage+ '<a name="TLogon_index_none_dl018" href="javascript:void(0);" onclick="javascript:freeToRegClick();">注册新账号</a>?';
  672. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  673. return;
  674. }else if(snMemberErrorCode=="E4700451" || errorCode=="E4700451"){
  675. //存在多个会员卡(重复卡) 会员卡异常,请至门店更换会员卡!
  676. errorMessage = "会员卡异常,请至门店更换会员卡!";
  677. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  678. return;
  679. }else if(snMemberErrorCode=="E4700464" || errorCode=="E4700464"){
  680. //您的会员账号出现异常,请联系4008-365-365!
  681. errorMessage = "您的会员账号出现异常,请联系4008-365-365!";
  682. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  683. return;
  684. }else if(snMemberErrorCode=="E4700480" || errorCode=="E4700480"){
  685. //卡类型为非个人卡类型(公司卡) 非个人卡会员暂不提供线上验证功能!
  686. errorMessage = "非个人卡会员暂不提供线上验证功能!";
  687. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  688. return;
  689. }else if(snMemberErrorCode=="E4700000" || errorCode=="E4700000"){
  690. errorMessage = "不好意思,系统繁忙,请稍后再试!";
  691. showErrorInfo(errorMessage);
  692. return;
  693. }else if(snMemberErrorCode=="E4700013" || errorCode=="E4700013"){
  694. //数据库操作出错 不好意思,系统繁忙,请稍后再试!
  695. errorMessage = "不好意思,系统繁忙,请稍后再试!";
  696. showErrorInfo(errorMessage);
  697. return;
  698. }else if(snMemberErrorCode=="E4700450" || errorCode=="E4700450"){
  699. errorMessage = "您的会员卡资料不完整,为保证您的账户安全,请携带会员卡及有效证件到就近门店补全资料!";
  700. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  701. return;
  702. }else if(snMemberErrorCode=="E4700443" || errorCode=="E4700443"){
  703. errorMessage = "会员卡已被锁定,请联系4008-365-365解锁。";
  704. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  705. return;
  706. }else if(snMemberErrorCode=="E4700B03" || errorCode=="E4700B03"){
  707. //E4700B03 会员卡首次登陆
  708. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  709. errorMessage = "会员卡首次登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡首次登录</a>进行操作";
  710. showErrorInfo(errorMessage);
  711. return;
  712. }else if(snMemberErrorCode=="E4700N07" || errorCode=="E4700N07"){
  713. //E4700N07手机号存在多个会员
  714. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  715. errorMessage = "会员卡登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡登录</a>进行操作";
  716. showErrorInfo(errorMessage);
  717. return;
  718. }else if(snMemberErrorCode=="E4700N11" || errorCode=="E4700N11"){
  719. //E4700N11 手机为团体会员的联系人手机,不能登录
  720. errorMessage='该账户名不存在,<a name="TLogon_index_none_dl007" href="javascript:void(0);" onclick="javascript:forgetLoginName();">忘记账户名</a>或';
  721. errorMessage= errorMessage+ '<a name="TLogon_index_none_dl018" href="javascript:void(0);" onclick="javascript:freeToRegClick();">注册新账号</a>?';
  722. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  723. return;
  724. }else if(snMemberErrorCode=="E4700487" || errorCode=="E4700487"){
  725. //E4700487 非个人会员卡不能绑定易购
  726. errorMessage = "非个人会员卡暂不提供线上登录验证。";
  727. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  728. return;
  729. }else if(snMemberErrorCode=="E0000001" || errorCode=="E0000001"){
  730. errorMessage = "不好意思,系统繁忙,请稍后再试!";
  731. showErrorInfo(errorMessage);
  732. return;
  733. }
  734.  
  735. //errorCode类型的错误提示信息
  736. if(errorCode=="badVerifyCode"){
  737. errorMessage = "验证码不正确,请重新输入";
  738. showErrorInfo(errorMessage,"showErrorVerifyCodeDiv");
  739. return;
  740. }else if(errorCode=="badSlideVerifyCode"){
  741. errorMessage = "为了你的账户安全,请重新拖动滑块完成验证";
  742. showErrorInfo(errorMessage);
  743. return;
  744. }else if(errorCode=="needVerifyCode"){
  745. if(isUseSlideVerifycode){
  746. errorMessage = "为了你的账户安全,请重新拖动滑块完成验证";
  747. showErrorInfo(errorMessage);
  748. }else{
  749. errorMessage = "请输入图片验证码!";
  750. showErrorInfo(errorMessage,"showErrorVerifyCodeDiv");
  751. }
  752. return;
  753. }else if(errorCode=="badPassword.msg1"){
  754. errorMessage="您输入的账户名与密码不匹配,请重新输入!<br/><a name='TLogon_index_none_dl006' href='"+forgetPwd_URL+"' target='_blank' style='float:none'>忘记密码</a>或<a href='javascript:void(0);' onclick='javascript:forgetLoginName();'>账户名</a>?";
  755. showErrorInfo(errorMessage);
  756. $('#password').val('');
  757. return;
  758. }else if(errorCode=="badPassword.msg2"){
  759. errorMessage="密码错误,您还可以尝试"+remainTimes+"次,<a name='TLogon_index_none_dl006' href='"+forgetPwd_URL+"' target='_blank' style='float:none'>点此找回密码</a>?";
  760. showErrorInfo(errorMessage);
  761. $('#password').val('');
  762. return;
  763. }else if(errorCode=="unknownUsername"){
  764. errorMessage='该账户名不存在,<a name="TLogon_index_none_dl007" href="javascript:void(0);" onclick="javascript:forgetLoginName();">忘记账户名</a>或';
  765. errorMessage= errorMessage+ '<a name="TLogon_index_none_dl018" href="javascript:void(0);" onclick="javascript:freeToRegClick();">注册新账号</a>?';
  766. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  767. return;
  768. }else if(errorCode=="lockedBySystem"){
  769. if(login.isDigit(logonId)&&(logonId.length==12)){
  770. errorMessage = "您的会员卡已被锁定,请联系4008-365-365进行解锁。";
  771. }else{
  772. errorMessage = "密码错误10次,您可以<a name='TLogon_index_none_dl006' href='"+forgetPwd_URL+"' target='_blank' style='float:none'>找回密码</a>,或1小时后再试。";
  773. }
  774. showErrorInfo(errorMessage);
  775. return;
  776. }else if(errorCode=="lockedByManual"){
  777. errorMessage = "您的账号已经被锁定,请联系客服4008-365-365进行解锁。";
  778. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  779. return;
  780. }else if(errorCode=="notOnlineMember"){
  781. //会员卡未绑定
  782. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  783. errorMessage = "会员卡首次登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡首次登录</a>进行操作";
  784. showErrorInfo(errorMessage);
  785. return;
  786. }else if(errorCode=="imperfectMemberCard"){
  787. errorMessage = "您的会员卡资料不完整,为保证您的账户安全,请携带会员卡及有效证件到就近门店补全资料!";
  788. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  789. return;
  790. }else if(errorCode == "CARD_PASSWORD_VERIFY_SUCCESS"){
  791. //账号通用逻辑:1.线下账号验证通过;2.线下账号校验不通过,非初始密码;3.线下账号,初始密码
  792. // 验证通过
  793. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  794. errorMessage = "会员卡登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡首次登录</a>进行操作";
  795. showErrorInfo(errorMessage);
  796. return;
  797. }else if(errorCode == "CARD_PASSWORD_VERIFY_FAILED"){
  798. // 验证不通过
  799. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  800. errorMessage = "会员卡登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡首次登录</a>进行操作";
  801. showErrorInfo(errorMessage);
  802. return;
  803. }else if(errorCode == "CARD_PASSWORD_INITIAL"){
  804. // 账号初始密码
  805. var jumpUrl = memberCard_URL + "?cardInfo=" + logonId;
  806. errorMessage = "会员卡登录请点击<a name='TLogon_index_none_dl008' href='" + jumpUrl + "' target='_blank' >门店会员卡首次登录</a>进行操作";
  807. showErrorInfo(errorMessage);
  808. return;
  809. }else if(errorCode == "serviceNotAvailable"){
  810. // 当前服务不可用,请稍后再试。
  811. errorMessage = "不好意思,系统繁忙,请稍后再试!";
  812. showErrorInfo(errorMessage);
  813. return;
  814. }else if(errorCode == "ECARD_UNBIND"){
  815. // 团体卡未绑定
  816. errorMessage = "非个人会员卡暂不支持登录验证,您可以进行<a href='" + companycard_url + "' target='_blank'>验证注册</a>或更换其他账号登录。";
  817. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  818. return;
  819. }else if(errorCode == "highRiskAccount"){
  820. // 高危用户
  821. var jumpUrl = asc_prefix_domain + "highrisk/getinfo.do?ticket=" + data.snapshotId;
  822. errorMessage = "该账号存在安全风险,请<a name='TLogon_index_none_dl010' href='"+jumpUrl+"' target='_blank'>验证并修改密码</a>。";
  823. showErrorInfo(errorMessage);
  824. return;
  825. }else if(errorCode == "suspectedHighRiskAccount"){
  826. // 疑似高危用户
  827. var jumpUrl = asc_prefix_domain + "highrisk/getinfo.do?ticket=" + data.snapshotId;
  828. errorMessage = "该账号存在安全风险,请<a name='TLogon_index_none_dl012' href='"+jumpUrl+"' target='_blank'>验证并修改密码</a>。";
  829. showErrorInfo(errorMessage);
  830. return;
  831. }else if(errorCode == "sopSuspectedHighRiskAccount"){
  832. // SOP疑似高危用户
  833. var jumpUrl = sop_prefix_domain + "sel/member/toForward.htm?ticket=" + data.snapshotId;
  834. errorMessage = "该账号存在安全风险,请<a name='TLogon_index_none_dl013' href='"+jumpUrl+"' target='_blank'>重置密码</a>后再登录。";
  835. showErrorInfo(errorMessage);
  836. return;
  837. }else if(errorCode == "maliciousRegister"){
  838. // 恶意注册用户
  839. var jumpUrl = asc_prefix_domain + "maliciousreg/getinfo.do?ticket=" + data.snapshotId;
  840. errorMessage = "该账号存在安全风险,请<a name='TLogon_index_none_dl011' href='"+jumpUrl+"' target='_blank'>验证身份</a>。";
  841. showErrorInfo(errorMessage);
  842. return;
  843. }else if(errorCode == "suspiciousLogin"){
  844. //异地登陆用户
  845. var parentUrl = serviceStr;
  846. var jumpUrl = asc_prefix_domain + "loginpro/getinfo.do?ticket=" + data.snapshotId +"&parentUrl ="+parentUrl +"&targetUrl="+encodeURIComponent(parentUrl)+"&_T="+ Math.random();
  847. errorMessage = "该账号存在安全风险,请<a name='TLogon_index_none_dl014' href='"+jumpUrl+"' target='_blank'>验证身份</a>。";
  848. showErrorInfo(errorMessage);
  849. return;
  850. }else if(errorCode == "sopSuspiciousLogin"){
  851. //sop异地登陆用户
  852. errorMessage = "尊敬的商家,请至<a name='TLogon_index_none_dl015' target='blank' href='" + sop_prefix_domain + "' target='_blank'>苏宁云台</a>进行登录";
  853. showErrorInfo(errorMessage);
  854. return;
  855. }else if(errorCode == "noAliasName"){
  856. //无别名
  857. errorMessage = "您的资料完善度较低,账号存在安全风险。<br/>请立即<a name='TLogon_index_none_dl016' target='_blank' href='" + asc_selfService_URL + "'>人工审核</a>";
  858. showErrorInfo(errorMessage,"showErrorUsernameDiv");
  859. return;
  860. }else if(errorCode == "lockedBySelf"){
  861. //自助锁定
  862. var unlockUrl = asc_prefix_domain + "unlockacct/checklist.do?ticket="+data.snapshotId;
  863. errorMessage = "您的账号已申请锁定,暂时无法登录<br/>您可以:<a name='TLogon_index_none_dl017' target='_blank' href='" + unlockUrl + "'>解锁账号</a>";
  864. showErrorInfo(errorMessage);
  865. return;
  866. }else if(errorCode == "IllegalArgument"){
  867. //参数错误
  868. errorMessage = "请重新登录";
  869. showErrorInfo(errorMessage);
  870. return;
  871. }else if(errorCode == "displayLoginPage"){
  872. //跳转到登录页,无需报错提示
  873. return;
  874. }else if(errorCode!=""){
  875. errorMessage = errorMessage!="" ? errorMessage : "不好意思,系统繁忙,请稍后再试!";
  876. showErrorInfo(errorMessage);
  877. return;
  878. }
  879. }
  880.  
  881.  
  882. //提交登录
  883. function prepareLoginSubmit(){
  884. //如果有图片验证,则需要先校验图片验证码,然后进行提交操作
  885. hideErrorInfo();
  886. if(needVerifyCodeVal){
  887. if(login.userLoginType == "smsLogin"){
  888. if (!checkSmsLoginPhone() || !checkValidateCodeOnSubmit() || !checkSmsLoginSmsCode()) {
  889. return false;
  890. }
  891. ajaxSmsLogonSubmit();
  892. //if(checkValidateCodeOnSubmit()){
  893. // ajaxCheckVerifyCodeOrSubmit(true);
  894. //}
  895. }else{
  896. if(!checkNormalLogonIdOnSubmit() || !checkNormalLogonPwdOnSubmit()) {
  897. return;
  898. }
  899. //如果出现图片验证码则在提交前应该对图片验证码进行校验
  900. if(checkValidateCodeOnSubmit()){
  901. ajaxCheckVerifyCodeOrSubmit(true);
  902. }
  903. }
  904. }else{
  905. if(login.userLoginType == "smsLogin"){
  906. ajaxSmsLogonSubmit();
  907. }else{
  908. loginSubmit();
  909. }
  910. }
  911.  
  912. }
  913. //提交登录
  914. function loginSubmit(){
  915. hideErrorInfo();
  916. if(!checkNormalLogonIdOnSubmit() || !checkNormalLogonPwdOnSubmit()) {
  917. return;
  918. }else{
  919. ajaxLogonSubmit();
  920. }
  921. }
  922.  
  923. //采用ajax方式进行认证请求
  924. function ajaxLogonSubmit(){
  925. var username = $('#userName').val().Trim();
  926. var pwd = $('#password').val().Trim();
  927. try {
  928. var encrypt = new JSEncrypt();
  929. encrypt.setPublicKey(loginPBK);
  930. var pwd2 = encrypt.encrypt(pwd);
  931. pwd = "";
  932. } catch (exception) {
  933. pwd2 = "";
  934. }
  935. var verifyCode = $(".validate:visible").val();
  936. var rememberMeVal = document.getElementById("rememberMe").checked;
  937. var param = {
  938. jsonViewType:true,
  939. username : username,
  940. password : pwd,
  941. password2 : pwd2,
  942. loginTheme:"b2c_pop",
  943. service:"https://aq.suning.com/asc/auth?targetUrl=https%3A%2F%2Floginst.suning.com%2FpopupLoginSuccess%3FtopLocation%3Dhttps%253A%252F%252Fcuxiao.suning.com%252F915djpjlzn.html",
  944. //oauth_redirect:"",
  945. //trust_redirect:"",
  946. rememberMe: rememberMeVal,
  947. client : "app",
  948. sceneId: "logonImg"
  949. };
  950. if(needVerifyCodeVal){
  951. if(isUseSlideVerifycode){
  952. param.slideVerifyCode = siller.queryToken();
  953. }else{
  954. param.verifyCode = verifyCode;
  955. param.uuid = "8bb1033d-93e6-42ac-8e00-cecbaee6368c";
  956. }
  957. }
  958. //登陆中
  959. showSubmitRunningButton();
  960. $.ajax( {
  961. type : 'POST',
  962. url : 'login',
  963. async: false,
  964. data : param,
  965. dataType : 'json',
  966. success : function(data) {
  967. if(login.isNotEmpty(data) && login.isNotEmpty(data.success)&&data.success){
  968. //进行成功的跳转
  969. window.location = goUrl;
  970. window.event.returnValue = false;
  971. }else{
  972. //重新显示图片验证码
  973. fun_getVcode();
  974. //是否显示图片验证码
  975. checkShowImageCode();
  976. //设置焦点
  977. setInitLogonIdinfo();
  978. showServerErrorMsg(data);
  979. //重置登录按钮
  980. showSubmitButton();
  981. }
  982. },
  983. error : function(data) {
  984. var errorMessage = "不好意思,系统繁忙,请稍后再试!";
  985. showErrorInfo(errorMessage);
  986. //重置登录按钮
  987. showSubmitButton();
  988. //设置焦点
  989. setInitLogonIdinfo();
  990. }
  991. });
  992. }
  993.  
  994. function checkSmsLoginPhone(){
  995. var phoneNumber = $('#phoneNumber').val().Trim();
  996. var smsCode = $('#smsCode').val().Trim();
  997.  
  998. if (phoneNumber == null || phoneNumber == "") {
  999. showErrorInfo("请输入手机号!","showErrorPhoneNumberDiv");
  1000. return false;
  1001. }
  1002. if(!login.isMobile(phoneNumber)){
  1003. showErrorInfo("格式不正确,请您输入正确的手机号!","showErrorPhoneNumberDiv");
  1004. return false;
  1005. }
  1006. hideErrorInfo();
  1007. return true;
  1008. }
  1009. function checkSmsLoginSmsCode(){
  1010. var smsCode = $('#smsCode').val().Trim();
  1011. if (smsCode == null || smsCode == "") {
  1012. showErrorInfo("请输入手机验证码!","showErrorSmsCodeDiv");
  1013. return false;
  1014. }
  1015. return true;
  1016. }
  1017.  
  1018. //校验验证码并发送
  1019. function ajaxVerifyCodeAndSendSmsCode(){
  1020. var phoneNumber = $('#phoneNumber').val().Trim();
  1021.  
  1022. if (!checkSmsLoginPhone()) {
  1023. return false;
  1024. }
  1025. if(needVerifyCodeVal){
  1026. if(isUseSlideVerifycode){
  1027. if (siller.status == 0 || null == slideVerifycode || slideVerifycode == "" ) {
  1028. showErrorInfo("为了你的账户安全,请拖动滑块完成验证。");
  1029. return false;
  1030. }else{
  1031. //进行提交操作
  1032. ajaxSmsLogonSendCode();
  1033. }
  1034. }else{
  1035. //用户输入的验证码code
  1036. var code = $(".validate:visible").val();
  1037. //请求时所传参数
  1038. var param = {
  1039. code : code,
  1040. uuid : "8bb1033d-93e6-42ac-8e00-cecbaee6368c",
  1041. delFlag : 0
  1042. };
  1043. $.ajax({
  1044. //请求类型
  1045. type : 'POST',
  1046. //发送验证请求的url
  1047. url : "https://vcs.suning.com/vcs/validate_jsonp.htm",
  1048. //请求时所传参数
  1049. data : param,
  1050. //返回数据类型
  1051. dataType : 'jsonp',
  1052. //回调函数方法名
  1053. jsonp : 'callback',
  1054. //请求成功后的回调函数
  1055. success : function(data) {
  1056. //显示验证结果
  1057. if(data[0].result == 'true'){
  1058. hideErrorInfo();
  1059. showVerifyCodeOK();
  1060. //进行提交操作
  1061. ajaxSmsLogonSendCode();
  1062. }else{
  1063. gLastImgValCodeResult = false;
  1064. // 当输入满4位时,鼠标未移出就开始校验图片验证码正确性。若连续输入错误3 次,系统自动刷新图片验证码。
  1065. fun_getVcode();
  1066. showErrorInfo("验证码不正确,请重新输入。","showErrorVerifyCodeDiv");
  1067. }
  1068. }
  1069. });
  1070. }
  1071. }else{
  1072. //进行提交操作
  1073. ajaxSmsLogonSendCode();
  1074. }
  1075. }
  1076.  
  1077. //手机验证码登录发送验证码
  1078. function ajaxSmsLogonSendCode(){
  1079. hideErrorInfo();
  1080. var phoneNumber = $('#phoneNumber').val().Trim();
  1081.  
  1082. if (!checkSmsLoginPhone()) {
  1083. return false;
  1084. }
  1085.  
  1086. var verifyCode = $(".validate:visible").val();
  1087. var rememberMeVal = document.getElementById("rememberMe").checked;
  1088. var param = {
  1089. phoneNumber : phoneNumber,
  1090. rememberMe: rememberMeVal,
  1091. type : 3,
  1092. sceneId: "logonImg",
  1093. targetUrl: goUrl
  1094. };
  1095. if(needVerifyCodeVal){
  1096. if(isUseSlideVerifycode){
  1097. param.sillerCode = siller.queryToken();
  1098. param.uuid = "sillerVerifyCode";
  1099. }else{
  1100. param.imgCode = verifyCode;
  1101. param.uuid = "8bb1033d-93e6-42ac-8e00-cecbaee6368c";
  1102. }
  1103. }
  1104. $.ajax({
  1105. type : 'GET',
  1106. url : srs_prefix_domain + 'smsLogin/sendSms.do',
  1107. data : param,
  1108. dataType : 'jsonp',
  1109. jsonp:'callback',
  1110. timeout:5000,
  1111. jsonpCallback:"smsLoginSendSms",
  1112. success : function(data) {
  1113. if(login.isNotEmpty(data) && (data.code == 'SLR_SUC_0001')){//发送成功
  1114. //进行成功的处理
  1115. login.sendSmsChangeStatus(data);
  1116. }else{
  1117. //重新显示图片验证码
  1118. fun_getVcode();
  1119. //是否显示图片验证码
  1120. checkShowImageCode();
  1121. showSmsLoginServerErrorMsg(data);
  1122. }
  1123. },
  1124. error : function(data) {
  1125. var errorMessage = "不好意思,系统繁忙,请稍后再试!";
  1126. showErrorInfo(errorMessage);
  1127. }
  1128. });
  1129. }
  1130. //手机验证码登录发送语音验证码
  1131. function ajaxVerifyCodeAndSendYYCode(){
  1132. hideErrorInfo();
  1133. var phoneNumber = $('#phoneNumber').val().Trim();
  1134.  
  1135. if (!checkSmsLoginPhone()) {
  1136. return false;
  1137. }
  1138.  
  1139. var verifyCode = $(".validate:visible").val();
  1140. var rememberMeVal = document.getElementById("rememberMe").checked;
  1141. var param = {
  1142. phoneNumber : phoneNumber,
  1143. rememberMe: rememberMeVal,
  1144. type : 3,
  1145. sceneId: "logonImg",
  1146. targetUrl: goUrl
  1147. };
  1148. if(needVerifyCodeVal){
  1149. if(isUseSlideVerifycode){
  1150. param.sillerCode = siller.queryToken();
  1151. param.uuid = "sillerVerifyCode";
  1152. }else{
  1153. param.imgCode = verifyCode;
  1154. param.uuid = "8bb1033d-93e6-42ac-8e00-cecbaee6368c";
  1155. }
  1156. }
  1157. $.ajax({
  1158. type : 'GET',
  1159. url : srs_prefix_domain + 'smsLogin/sendSmsYY.do',
  1160. data : param,
  1161. dataType : 'jsonp',
  1162. jsonp:'callback',
  1163. timeout:5000,
  1164. jsonpCallback:"smsLoginSendSmsYy",
  1165. success : function(data) {
  1166. if(login.isNotEmpty(data) && (data.code == 'SLR_SUC_0001')){//发送成功
  1167. //进行成功的处理
  1168. login.sendSmsYyChangeStatus(data);
  1169. }else{
  1170. //重新显示图片验证码
  1171. fun_getVcode();
  1172. //是否显示图片验证码
  1173. checkShowImageCode();
  1174. showSmsLoginServerErrorMsg(data);
  1175. }
  1176. },
  1177. error : function(data) {
  1178. var errorMessage = "不好意思,系统繁忙,请稍后再试!";
  1179. showErrorInfo(errorMessage);
  1180. }
  1181. });
  1182. }
  1183.  
  1184. //手机验证码登录采用ajax方式进行认证请求
  1185. function ajaxSmsLogonSubmit(){
  1186. var phoneNumber = $('#phoneNumber').val().Trim();
  1187. var smsCode = $('#smsCode').val().Trim();
  1188.  
  1189. if (!checkSmsLoginPhone() || !checkSmsLoginSmsCode()) {
  1190. return false;
  1191. }
  1192.  
  1193. var verifyCode = $(".validate:visible").val();
  1194. var rememberMeVal = document.getElementById("rememberMe").checked;
  1195. var smsTargetUrl = srs_prefix_domain + "smsLogin/popupLoginSuccess.do?topLocation=" + encodeURIComponent(serviceStr);
  1196. var param = {
  1197. phoneNumber : phoneNumber,
  1198. smsCode:smsCode,
  1199. rememberMe: rememberMeVal,
  1200. type : 3,
  1201. sceneId: "logonImg",
  1202. targetUrl: smsTargetUrl
  1203. };
  1204. if(needVerifyCodeVal){
  1205. if(isUseSlideVerifycode){
  1206. param.sillerCode = siller.queryToken();
  1207. param.uuid = "sillerVerifyCode";
  1208. }else{
  1209. param.imgCode = verifyCode;
  1210. param.uuid = "8bb1033d-93e6-42ac-8e00-cecbaee6368c";
  1211. }
  1212. }
  1213. //登陆中
  1214. showSubmitRunningButton();
  1215. $.ajax({
  1216. type : 'GET',
  1217. url : srs_prefix_domain + 'smsLogin/checkLoginAccount.do',
  1218. data : param,
  1219. dataType : 'jsonp',
  1220. jsonp:'callback',
  1221. timeout:5000,
  1222. jsonpCallback:"smsLoginCheckAccount",
  1223. success : function(data) {
  1224. if(login.isNotEmpty(data) && (data.code == 'SLR_ERR_0005' || data.code == 'SLR_ERR_0006')){//验证通过
  1225. //进行成功的跳转
  1226. window.location = srs_prefix_domain + 'smsLogin/checkLoginToken.do?type=3&rememberMe=' + rememberMeVal + '&acessToken=' + data.acessToken + '&topLocation=' + encodeURIComponent(serviceStr);
  1227. window.event.returnValue = false;
  1228. }else{
  1229. //重新显示图片验证码
  1230. fun_getVcode();
  1231. //是否显示图片验证码
  1232. checkShowImageCode();
  1233. //设置焦点
  1234. setInitLogonIdinfo();
  1235. showSmsLoginServerErrorMsg(data);
  1236. //重置登录按钮
  1237. showSubmitButton();
  1238. }
  1239. },
  1240. error : function(data) {
  1241. var errorMessage = "不好意思,系统繁忙,请稍后再试!";
  1242. showErrorInfo(errorMessage);
  1243. //重置登录按钮
  1244. showSubmitButton();
  1245. //设置焦点
  1246. setInitLogonIdinfo();
  1247. }
  1248. });
  1249. }
  1250.  
  1251. //显示服务器返回的错误信息
  1252. function showSmsLoginServerErrorMsg(data) {
  1253. if(isUseSlideVerifycode){
  1254. slideVerifycode = "";
  1255. $('#siller2').empty();
  1256. login.siller('siller2');
  1257. }
  1258. var errorCode= "";
  1259. if(login.isNotEmpty(data) && login.isNotEmpty(data.code)){
  1260. errorCode = data.code;
  1261. }
  1262.  
  1263. //srs中的错误提示信息
  1264. if(errorCode=="SLR_ERR_0001"){
  1265. errorMessage = "请输入手机号码";
  1266. showErrorInfo(errorMessage);
  1267. return;
  1268. }else if(errorCode=="SLR_ERR_0002"){
  1269. if(isUseSlideVerifycode){
  1270. errorMessage = "为了你的账户安全,请重新拖动滑块完成验证";
  1271. showErrorInfo(errorMessage,"showErrorPhoneNumberDiv");
  1272. }else{
  1273. errorMessage = "请输入图片验证码!";
  1274. showErrorInfo(errorMessage,"showErrorVerifyCodeDiv");
  1275. }
  1276. return;
  1277. }else if(errorCode=="SLR_ERR_0003"){
  1278. if(isUseSlideVerifycode){
  1279. errorMessage = "为了你的账户安全,请重新拖动滑块完成验证";
  1280. showErrorInfo(errorMessage,"showErrorPhoneNumberDiv");
  1281. }else{
  1282. errorMessage = "图片验证码错误,请重新输入!";
  1283. showErrorInfo(errorMessage,"showErrorVerifyCodeDiv");
  1284. }
  1285. return;
  1286. }else if(errorCode=="SLR_ERR_0004"){
  1287. errorMessage = "手机验证码错误或已失效,请重新输入 ";
  1288. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1289. return;
  1290. }else if(errorCode=="SLR_ERR_0007"){
  1291. errorMessage = "不好意思,系统繁忙,请稍后再试! ";
  1292. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1293. return;
  1294. }else if(errorCode=="SLR_ERR_0010"){
  1295. errorMessage = "您今日获取语音验证码的次数已达上限,您可以继续尝试获取短信验证码";
  1296. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1297. return;
  1298. }else if(errorCode=="SLR_ERR_0011"){
  1299. errorMessage = "发送验证码过于频繁,请您稍后再试";
  1300. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1301. return;
  1302. }else if(errorCode=="SLR_ERR_0012"){
  1303. errorMessage = "您当日累计获取短信验证码已达上限,请您次日再试";
  1304. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1305. return;
  1306. }else if(errorCode=="SLR_ERR_0013"){
  1307. errorMessage = "该时间段不支持使用语音验证码,您可以继续尝试获取短信验证码";
  1308. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1309. return;
  1310. }else if(errorCode=="SLR_ERR_9999"){
  1311. errorMessage = "不好意思,系统繁忙,请稍后再试!";
  1312. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1313. return;
  1314. }else{
  1315. errorMessage = "不好意思,系统异常,请稍后再试!";
  1316. showErrorInfo(errorMessage,"showErrorSmsCodeDiv");
  1317. return;
  1318. }
  1319. }
  1320.  
  1321.  
  1322. function ccasd(t) {
  1323. slideVerifycode = t;
  1324. try{
  1325. var sillerObj = $(".sillerVerifyCode:visible")
  1326. if(sillerObj && sillerObj.length>0){
  1327. if(siller.status == 1){
  1328. sa.click.sendDatasIndex(sillerObj[0]);
  1329. }
  1330. }
  1331. }catch(e){}
  1332. }
  1333.  
  1334. $(function(){
  1335.  
  1336. var postData = {};
  1337. postData.errorCode = '';
  1338. postData.snapshotId = '';
  1339.  
  1340. //初始化默认隐藏所有的提示
  1341. showScanhide();
  1342. //检测华夏基金等信任登录的cookies信息
  1343. checkTrustCookie();
  1344. //获取成功之后的跳转路径
  1345. //getGoUrl();
  1346. //是否显示图片验证码
  1347. checkShowImageCode();
  1348. //初始化图片验证码
  1349. fun_getVcode();
  1350. //绑定各种输入框的函数
  1351. checkInputEvent();
  1352. //显示服务端错误信息
  1353. showServerErrorMsg(postData);
  1354. //设置是否显示图片验证码
  1355. initShowVerifyCode();
  1356.  
  1357. forgetPwdClick();
  1358. });
  1359. </script>
  1360.  
  1361.  
  1362. </body>
  1363. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement