/** * 获取手机验证码的方法 */ var loopObjBindMobil = null; var secondsBindMobil = 0; function hqBindYzm(moblieName, phoneErrorMessage, getMobilCodeButton) { var successmobileToken = $("#successmobileToken").val(); var phoneValue = $("#" + moblieName).val(); if (secondsBindMobil > 0) { return; } if ($("#" + getMobilCodeButton).attr("disabled")) { return; } $("#" + getMobilCodeButton).attr("disabled", "disabled"); if (phoneValue != "") { if (onBlurMobilInput()) { $.post( appPath + "/memberCenter/getValidateCount.html", { phone: phoneValue }, function (data) { if (data == "have") { $("#" + phoneErrorMessage).text("手机已被人验证"); $("#" + getMobilCodeButton).removeAttr("disabled"); } else { $.post( appPath + "/memberCenter/sendPhoneCode.html", { mobileToken: successmobileToken, phoneNum: phoneValue }, function (data) { if (data == "yes") { // $("#mobiletext").show(); clearInterval(loopObjBindMobil); secondsBindMobil = 60; loopObjBindMobil = window.setInterval(function () { UpdateTime(getMobilCodeButton); }, 1000); } else if (data == "yyz") { $("#" + phoneErrorMessage).html("此账号已验证手机,无需再次验证,请到账户安全查看已验证手机"); $("#" + getMobilCodeButton).removeAttr("disabled"); } else if (data == "errorNum") { $("#" + phoneErrorMessage).html("非健一网来客!"); $("#" + getMobilCodeButton).removeAttr("disabled"); } }); } } ); } else { $("#mobilName").removeClass('text bian-01'); $("#mobilName").addClass('text bian-02'); $("#mobilStyle").removeClass('correct'); $("#mobilStyle").addClass('error'); $("#mobilErrorMsg").text('请输入正确的手机号'); $("#" + getMobilCodeButton).removeAttr("disabled"); return false; } } else { $("#mobilName").removeClass('text bian-01'); $("#mobilName").addClass('text bian-02'); $("#mobilStyle").removeClass('correct'); $("#mobilStyle").addClass('error'); $("#mobilErrorMsg").text('请输入手机号'); $("#" + getMobilCodeButton).removeAttr("disabled"); return false; } }
1 @RequestMapping(value = "/sendPhoneCode") 2 @J1Page 3 @SeoInfo 4 public void sendPhoneCode(HttpSession session, 5 HttpServletRequest request, HttpServletResponse response, 6 MyMemberInfoPageInputVo inputVo, 7 @ModelAttribute("model") MyMemberInfoPageModel model) { 8 String phoneNum = "";// 手机号码 9 String loginName = null; 10 11 try { 12 // if (request.getParameter("phoneNum") != null) { 13 // phoneNum = request.getParameter("phoneNum").trim(); 14 // } 15 if (inputVo.getPhoneNum() != null) { 16 phoneNum = inputVo.getPhoneNum().trim(); 17 } 18 // String num = request.getParameter("mobileToken"); 19 String num = inputVo.getMobileToken(); 20 if (StringUtil.isNotEmpty(num)) { 21 String code; 22 response.setContentType("text/html;charset=utf-8"); 23 24 if (request.getSession().getAttribute("loginName") != null) { 25 loginName = request.getSession().getAttribute("loginName").toString(); 26 } 27 if (loginName != null) { 28 Member getMember = memberService.findMemberByLoginName(loginName); 29 if (!"Y".equals(getMember.getMobileState())) { 30 sendCode(request, response, loginName, num, phoneNum); 31 } else { 32 response.getWriter().write("yyz"); 33 } 34 } else { 35 response.getWriter().write("errorNum"); 36 } 37 } else { 38 response.getWriter().write("errorNum"); 39 } 40 } catch (IOException e) { 41 // TODO Auto-generated catch block 42 logger.error(e.getMessage(), e); 43 } 44 45 } 46 47 48 49 50 public void sendCode(HttpServletRequest request, 51 HttpServletResponse response, String loginName, String num, 52 String phoneNum) { 53 54 int validateCount = 1;// 验证的次数 55 Boolean canSendSms = true;// 是否能发短信 56 57 try { 58 newMemberNameMapPhone = (Map<String, String>) cache.get(loginName 59 + "newMemberNameMapPhone"); 60 if (newMemberNameMapPhone == null) { 61 newMemberNameMapPhone = new HashMap<String, String>(); 62 } 63 // 手机验证码 64 String code = RandomUtils.generateNumberString(6);// 手机验证码 65 94 String nowDay = StringUtil.returnDateFormat(new Date(), 95 "yyyy-MM-dd"); 96 String mobileValue = newMemberNameMapPhone.get(loginName);// 获取这个用户手机验证的value 97 if (mobileValue == null) {// 说明该用户没有验证过手机记录 98 newMemberNameMapPhone.put(loginName, code + "_" + 1 + "_" 99 + nowDay + "_" + phoneNum + "_" + num); 100 } else { 101 String[] strArr = mobileValue.split("_"); 102 if (nowDay.equals(strArr[2])) {// 这天验证的次数 103 111 validateCount += 1; 112 newMemberNameMapPhone.put(loginName, code + "_" 113 + validateCount + "_" + nowDay + "_" + phoneNum 114 + "_" + num); 115 116 } else { 117 newMemberNameMapPhone.put(loginName, code + "_" + 1 + "_" 118 + nowDay + "_" + phoneNum + "_" + num); 119 } 120 } 121 // 验证存放到cache里面 122 cache.put(loginName + "newMemberNameMapPhone", 123 newMemberNameMapPhone, 30); 124 // if (canSendSms.equals(true)) { 125 Sms sms = new Sms(); 126 sms.setMobile(phoneNum); 127 sms.setMsg("尊敬的用户 , 您在健一网的安全验证码为" + code + ",健一网祝您身体健康"); 128 long time = new Date().getTime(); 129 long preTime = sendMessageService.getMsg(sms.getMobile() + num, 130 time); 131 long differenceTime = time - preTime; 132 // if (differenceTime > 0 && differenceTime < 60000) { 133 // response.getWriter().write("no"); 134 // } else { 135 sendMessageService.sendMessageForCode(sms, num); 136 response.getWriter().write("yes"); 137 // } 138 // } else { 139 // response.getWriter().write("no"); 140 // } 141 } catch (IOException e) { 142 // TODO Auto-generated catch block 143 logger.error(e.getMessage(), e); 144 } 145 146 }