600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java调接口实现发送手机短信验证码功能 手机验证码 接口调用

java调接口实现发送手机短信验证码功能 手机验证码 接口调用

时间:2021-03-19 03:20:13

相关推荐

java调接口实现发送手机短信验证码功能 手机验证码 接口调用

原文地址: /sxdtzhaoxinguo/article/details/34437591

近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限,还请大家见谅!

一:首先上几张案例截图,以便大家可以了解一下短信验证码的流程,这里我在做的过程中也参考了很多网站的短信验证码,比如:58同城,汽车之家等。

1.点击获取验证码之前的样式:

2.输入正确的手机号后点击获取验证码之后的样式:

3.如果手机号已经被注册的样式:

4.如果一个手机号一天发送超过3次就提示不能发送:

二:前台的注册页面的代码:reg.jsp

[html]view plaincopy<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%> <%@taglibprefix="s"uri="/struts-tags"%> <%@pageimport="cn.gov.csrc.base.action.FindAllData"%> <% Stringpath=request.getContextPath(); StringbasePath=request.getScheme()+"://" +request.getServerName()+":"+request.getServerPort() +path+"/"; %> <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"> <html> <head> <basehref="<%=basePath%>"> <title>中国证券会证券期货违法违规举报中心-注册</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <linkrel="shortcuticon"type="image/x-icon"href="<%=request.getContextPath()%>/images/favicon.ico"/> <linkrel="stylesheet"type="text/css" href="<%=request.getContextPath()%>/css/main.css"> <link href="<%=request.getContextPath()%>/formValidator1/style/validator.css" rel="stylesheet"type="text/css"/> <styletype="text/css"> button{ background:#F0F0F0repeat-x; padding-top:3px; border-top:1pxsolid#708090; border-right:1pxsolid#708090; border-bottom:1pxsolid#708090; border-left:1pxsolid#708090; width:auto; line-height:12pt; font-size:10pt; cursor:hand; font-size:10pt; border-top:1pxsolid#708090; } </style> <scriptsrc="<%=request.getContextPath()%>/js/jquery-1.7.2.min.js" type="text/javascript"></script> <scriptsrc="<%=request.getContextPath()%>/formValidator1/formValidator-4.0.1.js" type="text/javascript"></script> <scriptsrc="<%=request.getContextPath()%>/formValidator1/formValidatorRegex.js" type="text/javascript"></script> <scriptsrc="<%=request.getContextPath()%>/js/register.js" type="text/javascript"></script> <scriptsrc="<%=request.getContextPath()%>/js/sms.js" type="text/javascript"></script> <scripttype="text/javascript"> functionchangeCheckNum(){ varcheckNumImage_=document.getElementById("checkNumImage"); checkNumImage_.src="${pageContext.request.contextPath}/image.jsp?timeStamp="+newDate().getTime(); } </script> <scripttype="text/javascript"> varmsg="${message}"; if(msg!=""){ alert(msg); } </script> </head> <body> <%@includefile="/statics/top.jspf"%> <divclass="center_division"> <divclass="center_body"> <divclass="center_menu"> <fontcolor="#000000">当前位置:</font> <ahref="<%=request.getContextPath()%>/statics/reg.jsp"><fontcolor="#000000">用户注册</font></a> </div> </div> <divclass="center_body_menu"> <s:formaction="RegisterAction_register"id="form1"name="form1"method="post"namespace="/"> <tableid="tb"> <tr> <tdcolspan="3"align="center"bgcolor="#DDDFE1">举报人基本信息</td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>用户名:</td> <tdalign="center"width="40%"> <s:textfieldname="username"id="username"cssStyle="width:160px;height:24px;"onblur="checkusername()"/> </td> <tdalign="left"width="30%"> <spanid="usernameTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>username</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>登录密码:</td> <tdalign="center"width="40%"> <s:passwordname="password"id="password"cssStyle="width:160px;height:24px;"onblur="checkpassword()"/> </td> <tdalign="left"width="30%"> <spanid="passwordTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>password</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>确认密码:</td> <tdalign="center"width="40%"> <s:passwordname="passwordRepeat"id="passwordRepeat"cssStyle="width:160px;height:24px;"onblur="checkpasswrodb()"/> </td> <tdalign="left"width="30%"> <spanid="passwordRepeatTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>passwordRepeat</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>姓名:</td> <tdalign="center"width="40%"> <s:textfieldname="nickname"id="nickname"cssStyle="width:160px;height:24px;"onblur="checknickname()"/> </td> <tdalign="left"width="30%"> <spanid="nicknameTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>nickname</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%">性别:</td> <tdalign="center"width="40%"> <s:radiolist="#application.dataMap.get('10001')"name="jbSex"cssStyle="height:24px;"/> </td> <tdalign="left"width="30%"></td> </tr> <tr> <tdalign="center"width="30%">联系地址:</td> <tdalign="center"width="40%"> <s:textfieldname="jbAddress"id="jbAddress"cssStyle="width:160px;height:24px;"/> </td> <tdalign="left"width="30%"> <spanid="jbAddressTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbAddress</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>联系手机:</td> <tdalign="center"width="40%"> <s:textfieldid="jbPhone"name="jbPhone"cssStyle="width:160px;height:24px;"onblur="checkjbPhone()"/> </td> <tdalign="left"width="30%"> <spanid="jbPhoneTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbPhone</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"><imgsrc="images/new_reg_xing.gif"/>短信验证码:</td> <tdalign="left"colspan="2"style="padding-left:112px;"> <s:textfieldid="SmsCheckCode"name="SmsCheckCode"cssStyle="width:80px;height:24px;"maxLength="6"/> <span><inputtype="button"id="btnSendCode"name="btnSendCode"value="免费获取验证码"onclick="sendMessage()"/></span> <spanid="SmsCheckCodeTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>SmsCheckCodeTip</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>证件类型:</td> <tdalign="center"width="40%"> <s:selectlist="#application.dataMap.get('10002')"label="" headerKey=""headerValue="--请选择--"value="1"listValue="value"onchange="enableCredentialsCode(this)" name="jbCredentialsName"id="jbCredentialsName"cssStyle="width:160px;height:24px;"/> </td> <tdalign="left"width="30%"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbCredentialsName</s:param> </s:fielderror> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>证件号码:</td> <tdalign="center"width="40%"> <s:textfieldname="jbCredentialsCode"id="jbCredentialsCode"cssStyle="width:160px;height:24px;"onblur="checkjbCredentialsCode()"/> </td> <tdalign="left"width="30%"> <spanid="jbCredentialsCodeTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbCredentialsCode</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%">单位名称:</td> <tdalign="center"width="40%"> <s:textfieldname="jbCompanyName"id="jbCompanyName"cssStyle="width:160px;height:24px;"/> </td> <tdalign="left"width="30%"> <spanid="jbCompanyNameTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbCompanyName</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>所在地区:</td> <tdalign="center"width="40%"> <s:selectlist="#application.dataMap.get('10003')"label="" headerKey=""headerValue="--请选择--"listKey="key" cssStyle="width:160px;height:24px;"listValue="value"id="jbSourceArea" name="jbSourceArea"onblur="checkjbSourceArea()"/> </td> <tdalign="left"width="30%"> <spanid="jbSourceAreaTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>jbSourceArea</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdalign="center"width="30%"><imgsrc="images/new_reg_xing.gif"/>验证码:</td> <tdalign="center"width="40%"> <s:textfieldid="checkNum"name="checkNum"cssStyle="width:60px;height:24px;"onblur="checkNumber()"maxLength="4"/> <imgid="checkNumImage"src="${pageContext.request.contextPath}/image.jsp"> <aonClick="changeCheckNum()"title="点击换一张"style="cursor:hand;">换一张</a> </td> <tdalign="left"width="30%"> <spanid="checkNumTip"> <s:fielderrorcssStyle="color:red;padding-left:10px;"> <s:param>checkNumTip</s:param> </s:fielderror> </span> </td> </tr> <tr> <tdcolspan="3"style="vertical-align:top;padding-top:5px;padding-bottom:5px;"> <inputtype="submit"value="注册"style="width:50px;height:24px;"/> <inputtype="reset"value="重置"style="width:50px;height:24px;"/> </td> </tr> </table> </s:form> </div> </div> <%@includefile="/common/buttom.jspf"%> </body> </html>

三:前台获取短信验证码的js:sms.js[javascript]view plaincopyvarInterValObj;//timer变量,控制时间 varcount=120;//间隔函数,1秒执行 varcurCount;//当前剩余秒数 varcode="";//验证码 varcodeLength=6;//验证码长度 functionsendMessage(){ curCount=count; varjbPhone=$("#jbPhone").val(); varjbPhoneTip=$("#jbPhoneTip").text(); if(jbPhone!=""){ if(jbPhoneTip=="√该手机号码可以注册,输入正确"||jbPhoneTip=="√短信验证码已发到您的手机,请查收"){ //产生验证码 for(vari=0;i<codeLength;i++){ code+=parseInt(Math.random()*9).toString(); } //设置button效果,开始计时 $("#btnSendCode").attr("disabled","true"); $("#btnSendCode").val("请在"+curCount+"秒内输入验证码"); InterValObj=window.setInterval(SetRemainTime,1000);//启动计时器,1秒执行一次 //向后台发送处理数据 $.ajax({ type:"POST",//用POST方式传输 dataType:"text",//数据格式:JSON url:"UserAction_sms.action",//目标地址 data:"jbPhone="+jbPhone+"&code="+code, error:function(XMLHttpRequest,textStatus,errorThrown){ }, success:function(data){ data=parseInt(data,10); if(data==1){ $("#jbPhoneTip").html("<fontcolor='#339933'>√短信验证码已发到您的手机,请查收</font>"); }elseif(data==0){ $("#jbPhoneTip").html("<fontcolor='red'>×短信验证码发送失败,请重新发送</font>"); }elseif(data==2){ $("#jbPhoneTip").html("<fontcolor='red'>×该手机号码今天发送验证码过多</font>"); } } }); } }else{ $("#jbPhoneTip").html("<fontcolor='red'>×手机号码不能为空</font>"); } } //timer处理函数 functionSetRemainTime(){ if(curCount==0){ window.clearInterval(InterValObj);//停止计时器 $("#btnSendCode").removeAttr("disabled");//启用按钮 $("#btnSendCode").val("重新发送验证码"); code="";//清除验证码。如果不清除,过时间后,输入收到的验证码依然有效 }else{ curCount--; $("#btnSendCode").val("请在"+curCount+"秒内输入验证码"); } } $(document).ready(function(){ $("#SmsCheckCode").blur(function(){ varSmsCheckCodeVal=$("#SmsCheckCode").val(); //向后台发送处理数据 $.ajax({ url:"UserAction_checkCode.action", data:{SmsCheckCode:SmsCheckCodeVal}, type:"POST", dataType:"text", success:function(data){ data=parseInt(data,10); if(data==1){ $("#SmsCheckCodeTip").html("<fontcolor='#339933'>√短信验证码正确,请继续</font>"); }else{ $("#SmsCheckCodeTip").html("<fontcolor='red'>×短信验证码有误,请核实后重新填写</font>"); } } }); }); });

四:验证码用户名和手机号码的js:register.js

[javascript]view plaincopy//去掉前后空格 functiontrim(str){ varstrnew=str.replace(/^\s*|\s*$/g,""); returnstrnew; } //用户名 functioncheckusername(){ varusername=document.form1.username.value; if(username==""||!isNaN(username.charAt(0))){ document.getElementById("usernameTip").innerHTML="<fontcolor='red'>×首字母不能为数字或者用户名不能为空</font>"; returnfalse; }elseif(username.length<6||username.length>30){ document.getElementById("usernameTip").innerHTML="<fontcolor='red'>×用户名长度为6-30位字符</font>"; returnfalse; }else{ document.getElementById("usernameTip").innerHTML="<fontcolor='#339933'>√用户名合格</font>"; //向后台发送处理数据 $.ajax({ url:"UserAction_checkUserName.action",//目标地址 data:{username:username},//目标参数 type:"POST",//用POST方式传输 dataType:"text",//数据格式:text success:function(data){ data=parseInt(data,10); if(data!=0){ $("#usernameTip").html("<fontcolor='red'>×该用户名已经被注册,请重新输入</font>"); }else{ $("#usernameTip").html("<fontcolor='#339933'>√该用户名可以注册,输入正确</font>"); } } }); returntrue; } } //登录密码 functioncheckpassword(){ varpassword=document.form1.password.value; if(password.length<6||password.length>30){ document.getElementById("passwordTip").innerHTML="<fontcolor='red'>×密码长度不能小于6位,大于30位</font>"; returnfalse; }elseif(!isNaN(password)){ document.getElementById("passwordTip").innerHTML="<fontcolor='red'>×密码不能全是数字</font>"; returnfalse; }else{ document.getElementById("passwordTip").innerHTML="<fontcolor='#339933'>√密码合格</font>"; returntrue; } } //确认密码 functioncheckpasswrodb(){ varpassword=document.form1.password.value; varpasswordRepeat=document.form1.passwordRepeat.value; if(trim(password)!=trim(passwordRepeat)){ document.getElementById("passwordRepeatTip").innerHTML="<fontcolor='red'>×两次密码输入必须一致</font>"; returnfalse; }else{ document.getElementById("passwordRepeatTip").innerHTML="<fontcolor='#339933'>√密码输入一致</font>"; returntrue; } } //姓名 functionchecknickname(){ varnickname=document.form1.nickname.value; if(trim(nickname)==""){ document.getElementById("nicknameTip").innerHTML="<fontcolor='red'>×姓名不能为空</font>"; returnfalse; }else{ document.getElementById("nicknameTip").innerHTML="<fontcolor='#339933'>√姓名输入正确</font>"; returntrue; } } //联系手机(ajax验证手机号码是否已经存在) functioncheckjbPhone(){ varjbPhone=document.form1.jbPhone.value; varre=/(^1[3|5|8][0-9]{9}$)/; if(trim(jbPhone)==""){ document.getElementById("jbPhoneTip").innerHTML="<fontcolor='red'>×手机号码不能为空</font>"; returnfalse; }elseif(trim(jbPhone)!=""){ if(!re.test(jbPhone)){ document.getElementById("jbPhoneTip").innerHTML="<fontcolor='red'>×请输入有效的手机号码</font>"; returnfalse; }else{ document.getElementById("jbPhoneTip").innerHTML="<fontcolor='#339933'>√手机号码输入正确</font>"; //向后台发送处理数据 $.ajax({ url:"UserAction_checkPhone.action",//目标地址 data:{jbPhone:jbPhone},//目标参数 type:"POST",//用POST方式传输 dataType:"text",//数据格式:text success:function(data){ data=parseInt(data,10); if(data!=0){ $("#jbPhoneTip").html("<fontcolor='red'>×该手机号码已经被注册,请重新输入</font>"); }else{ $("#jbPhoneTip").html("<fontcolor='#339933'>√该手机号码可以注册,输入正确</font>"); } } }); returntrue; } } } //证件号码 functioncheckjbCredentialsCode(){ varjbCredentialsCode=document.form1.jbCredentialsCode.value; varreg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if(trim(jbCredentialsCode)==""){ document.getElementById("jbCredentialsCodeTip").innerHTML="<fontcolor='red'>×证件号码不能为空</font>"; returnfalse; }elseif(trim(jbCredentialsCode)!=""){ if(!reg.test(jbCredentialsCode)){ document.getElementById("jbCredentialsCodeTip").innerHTML="<fontcolor='red'>×请输入合法的证件号码</font>"; returnfalse; }else{ document.getElementById("jbCredentialsCodeTip").innerHTML="<fontcolor='#339933'>√证件号码输入正确</font>"; //向后台发送处理数据 $.ajax({ url:"UserAction_checkCredentialsCode.action",//目标地址 data:{jbCredentialsCode:jbCredentialsCode},//目标参数 type:"POST",//用POST方式传输 dataType:"text",//数据格式:text success:function(data){ data=parseInt(data,10); if(data!=0){ $("#jbCredentialsCodeTip").html("<fontcolor='red'>×该证件号码已经被注册,请重新输入</font>"); }else{ $("#jbCredentialsCodeTip").html("<fontcolor='#339933'>√该证件号码可以注册,输入正确</font>"); } } }); returntrue; } } } //所在地区 functioncheckjbSourceArea(){ varjbSourceArea=document.form1.jbSourceArea.value; if(trim(jbSourceArea)==""){ document.getElementById("jbSourceAreaTip").innerHTML="<fontcolor='red'>×请选择所在地区</font>"; returnfalse; }else{ document.getElementById("jbSourceAreaTip").innerHTML="<fontcolor='#339933'>√所在地区选择正确</font>"; returntrue; } } //验证码 functioncheckNumber(){ varcheckNum=document.form1.checkNum.value; if(trim(checkNum)==""){ document.getElementById("checkNumTip").innerHTML="<fontcolor='red'>×验证码不能为空</font>"; returnfalse; }else{ document.getElementById("checkNumTip").innerHTML="<fontcolor='#339933'>√验证码合格</font>"; //向后台发送处理数据 $.ajax({ url:"UserAction_checkNum.action",//目标地址 data:{checkNum:checkNum},//目标参数 type:"POST",//用POST方式传输 dataType:"text",//数据格式:text success:function(data){ data=parseInt(data,10); if(data!=0){ $("#checkNumTip").html("<fontcolor='red'>×验证码错误</font>"); }else{ $("#checkNumTip").html("<fontcolor='#339933'>√验证码正确</font>"); } } }); returntrue; } }

五:后台action的代码:UserAction.Java(这里只是调用了我们的第三方给提供的客户端代码的发送短信的方法,如果是调用其他的短信平台,可以换成他们的发送短信的方法,这里只是给大家做个参考)

[java]view plaincopypackagecn.gov.csrc.base.systemmanager.action; importjava.io.IOException; importjava.io.PrintWriter; importjava.util.List; importjavax.annotation.Resource; importjavax.servlet.http.HttpServletResponse; importorg.apache.log4j.Logger; importorg.apache.struts2.convention.annotation.Action; importorg.apache.struts2.convention.annotation.Result; importorg.apache.struts2.convention.annotation.Results; importorg.springframework.context.annotation.Scope; importorg.springframework.security.authentication.encoding.MessageDigestPasswordEncoder; importorg.springframework.security.core.context.SecurityContextHolder; importorg.springframework.stereotype.Controller; importcn.gov.csrc.base.action.BaseAction; importcn.gov.csrc.base.log.service.LogService; importcn.gov.csrc.base.monUtil; importcn.gov.csrc.base.report.util.Env; importcn.gov.csrc.base.systemmanager.model.Count; importcn.gov.csrc.base.systemmanager.model.User; importcn.gov.csrc.base.systemmanager.service.CountService; importcn.gov.csrc.base.systemmanager.service.UserService; importcn.gov.csrc.base.util.WebContextUtil; importcom.sms.webservice.client.SmsReturnObj; importcom.sms.webservice.client.SmsWebClient; /** *File:UserAction.java *Author:jiangsai *Version:1.1 *Date:04/17/ *Modify: *Description:用户 *Copyrightcsrc */ @Controller() @Scope("prototype") @Results({ @Result(name="success",location="/statics/report.jsp"), @Result(name="modifyPassword",location="/statics/modifyPassword.jsp") }) publicclassUserActionextendsBaseAction<User>{ privatestaticfinallongserialVersionUID=1214696686677691191L; privatestaticLoggerlog=Logger.getLogger(UserAction.class); privatestaticfinalStringurl=Env.getInstance().getProperty("url"); privatestaticfinalStringuserName=Env.getInstance().getProperty( "username"); privatestaticfinalStringpassWord=Env.getInstance().getProperty( "password"); privateIntegerid; privateStringusername;//用户名 privateStringpassword;//密码 privateStringpasswordRepeat;//确认密码 privateStringjbPhone;//手机号码 privateStringjbCredentialsCode;//身份证号码 privateStringcheckNum;//图片验证码 privateStringnewPassword; privateStringconfirmPassword; privateInteger[]ownRoleIds; privateUserServiceuserService; privateCountServicecountService; privateLogServicelogService; privateCountcount=newCount(); publicIntegergetId(){ returnid; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetPasswordRepeat(){ returnpasswordRepeat; } publicvoidsetPasswordRepeat(StringpasswordRepeat){ this.passwordRepeat=passwordRepeat; } publicStringgetJbPhone(){ returnjbPhone; } publicvoidsetJbPhone(StringjbPhone){ this.jbPhone=jbPhone; } publicStringgetJbCredentialsCode(){ returnjbCredentialsCode; } publicvoidsetJbCredentialsCode(StringjbCredentialsCode){ this.jbCredentialsCode=jbCredentialsCode; } publicStringgetCheckNum(){ returncheckNum; } publicvoidsetCheckNum(StringcheckNum){ this.checkNum=checkNum; } publicInteger[]getOwnRoleIds(){ returnownRoleIds; } publicvoidsetOwnRoleIds(Integer[]ownRoleIds){ this.ownRoleIds=ownRoleIds; } publicStringgetNewPassword(){ returnnewPassword; } publicvoidsetNewPassword(StringnewPassword){ this.newPassword=newPassword; } publicStringgetConfirmPassword(){ returnconfirmPassword; } publicvoidsetConfirmPassword(StringconfirmPassword){ this.confirmPassword=confirmPassword; } @Resource publicvoidsetUserService(UserServiceuserService){ this.userService=userService; } publicUserServicegetUserService(){ returnuserService; } @Resource publicvoidsetCountService(CountServicecountService){ this.countService=countService; } publicCountServicegetCountService(){ returncountService; } publicLogServicegetLogService(){ returnlogService; } @Resource publicvoidsetLogService(LogServicelogService){ this.logService=logService; } publicCountgetCount(){ returncount; } publicvoidsetCount(Countcount){ this.count=count; } publicvoidprepareToUpdatePage(){ model=userService.getEntity(id); } /** *用户登录 * *@returnsuccess */ @Action(value="UserAction_login") publicStringlogin(){ Objectu=SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if(uinstanceofUser&&u!=null){ WebContextUtil.getSession().setAttribute("user",u); Useruser=(User)u; //使用数据库表TBL_BASE_LOG添加用户登录的日志信息 logService.saveTblBaseLog(WebContextUtil.getRequest(),"当前操作人【"+user.getNickname()+"】登录系统"); }else{ //防止绕过登陆页面直接执行Action return"login"; } returnSUCCESS; } /** *用户密码更新 */ @Action(value="UserAction_updateUser") publicStringupdateUser(){ if(!newPassword.equals(confirmPassword)){ this.setMessage("新密码与确认密码不一致!"); return"modifyPassword"; } Useru=(User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); MessageDigestPasswordEncoderencoder=newMessageDigestPasswordEncoder("md5"); Stringpsw=encoder.encodePassword(newPassword,null); userService.modifyPassword(u,psw); this.setMessage("保存成功!"); return"modifyPassword"; } /** *验证用户名是否存在 * *@throwsException */ @Action(value="UserAction_checkUserName") publicvoidcheckUserName(){ Stringresult="0"; try{ List<User>list=userService.findUserByUserName(username); if(list!=null&&list.size()>0){ result="1"; }else{ result="0"; } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); }catch(IOExceptione){ thrownewRuntimeException("验证身份证号码出错",e); } } /** *验证原始密码是否正确 * *@throwsException */ @Action(value="UserAction_checkPassWord") publicvoidcheckPassWord()throwsException{ Stringresult="0"; MessageDigestPasswordEncoderencoder=newMessageDigestPasswordEncoder("md5"); Stringpwd=encoder.encodePassword(password,null); List<User>user=userService.findUserByPassWord(pwd); if(user!=null&&user.size()>0){ result="1"; }else{ result="0"; } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); } /** *验证手机号码是否存在 */ @Action(value="UserAction_checkPhone") publicvoidcheckPhone(){ Stringresult="0"; try{ List<User>list=userService.findUserByPhone(jbPhone); if(list!=null&&list.size()>0){ result="1"; }else{ result="0"; } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); }catch(IOExceptione){ thrownewRuntimeException("验证手机号码出错",e); } } /** *验证身份证号码是否存在 */ @Action(value="UserAction_checkCredentialsCode") publicvoidcheckCredentialsCode(){ Stringresult="0"; try{ List<User>list=userService.findUserByCredentialsCode(jbCredentialsCode); if(list!=null&&list.size()>0){ result="1"; }else{ result="0"; } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); }catch(IOExceptione){ thrownewRuntimeException("验证身份证号码出错",e); } } /** *验证验证码是否正确 */ @Action(value="UserAction_checkNum") publicvoidcheckNum(){ try{ Stringresult="0"; Stringcheck_number_key=(String)WebContextUtil.getSession().getAttribute("CHECK_NUMBER_KEY"); if(checkNum!=check_number_key&&!checkNum.equals(check_number_key)){ result="1"; }else{ result="0"; } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); }catch(IOExceptione){ thrownewRuntimeException("验证验证码出错",e); } } /** *验证短信验证码是否正确 * *@throwsException */ @Action(value="UserAction_checkCode") publicvoidcheckCode()throwsException{ Stringresult="0"; /**获取手动输入的手机短信验证码*/ StringSmsCheckCode=WebContextUtil.getRequest().getParameter("SmsCheckCode"); /**获取session中存放的手机短信验证码*/ Stringcode=(String)WebContextUtil.getSession().getAttribute("code"); try{ if(SmsCheckCode!=code&&!SmsCheckCode.equals(code)){ result="0"; }else{ result="1"; } }catch(Exceptione){ thrownewRuntimeException("短信验证失败",e); } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); } /** *验证手机短信是否发送成功 * *@throwsException */ @Action(value="UserAction_sms") publicvoidsms()throwsException{ Stringresult="0"; /**手机号码*/ StringjbPhone=WebContextUtil.getRequest().getParameter("jbPhone"); /**短信验证码*/ Stringcode=WebContextUtil.getRequest().getParameter("code"); /**短信验证码存入session(session的默认失效时间30分钟)*/ WebContextUtil.getSession().setAttribute("code",code); /**如何初始化失败返回*/ if(!initClient()){ return; } /**单个手机号发送短信的方法的参数准备*/ //手机号码 Stringmobilephone=jbPhone; //短信内容+随机生成的6位短信验证码 Stringcontent="根据中国证监会举报中心委托,特向您发送此条短信。您的注册验证码为:"+code; //操作用户的ID IntegeroperId=Integer.parseInt(Env.getInstance().getProperty("operId")); //定时发送的的发送时间(缺省为空,如果即时发送,填空) Stringtosend_time=""; //应用系统的短信ID,用户查询该短信的状态报告(缺省为0,即不需查询短信的状态报告) intsms_id=0; //黑名单过滤(0:不需要黑名单过滤,1:需要黑名单过滤,缺省为0) shortbacklist_filter=0; //禁止语过滤(0:不需要禁止语过滤,1:需要禁止语过滤,缺省为0) shortfbdword_filter=0; //优先级(值越大优先级越高,0:普通,1,:优先,2:最高,缺省为0) shortpriority=0; //短信有效时间(格式为:YYYY-MM-DDHH:mm:ss目前为空) Stringvalid_time=""; /**发送短信之前先统计一个已经发送的短信条数*/ intmessageCount=countService.findAllRecord(mobilephone); log.info("已发短信条数为:"+messageCount); if(messageCount<5){ /**单个手机号发送短信*/ if(!sendMessage(mobilephone,content,operId,tosend_time,sms_id, backlist_filter,fbdword_filter,priority,valid_time)){ result="0";//失败 }else{ result="1";//成功 /**发送一条短信,记录一条短信记录,为了方便之后的统计短信发送次数*/ count.setPhone(mobilephone);//手机号码 count.setCaptcha(code);//短信验证码 count.setSendTime(CommonUtil.getNowDate());//短信发送时间 if(count!=null){ countService.saveEntity(count); log.info("短信验证码发送记录保存成功!"); } } }else{ result="2";//一个手机号码最多发送5条短信验证码 log.info("该手机号码今天发送验证码过多"); } HttpServletResponseresponse=WebContextUtil.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control","no-cache"); PrintWriterout=response.getWriter(); out.write(result.toString()); } /** *WebService客户端初始化 * */ publicstaticbooleaninitClient(){ /** *判断客户端是否已经初始化 */ if(!SmsWebClient.enable()){ intret=0; try{ ret=SmsWebClient.init(url,userName,passWord); if(ret==-1||!SmsWebClient.enable()){ log.info("短信平台接口初始化失败!"); returnfalse; } log.info("短信平台接口初始化成功!"+ret+"-----"); }catch(Exceptionex){ ex.printStackTrace(); log.info("短信平台接口初始化过程中异常!"); } } returntrue; } /** *单个手机号码发送 * *@parammobilephone *手机号 *@paramcontent *短信内容 *@paramoperId *操作用户的ID *@paramtosend_time *定时发送的发送时间 *@paramsms_id *应用系统的短信ID *@parambacklist_filter *黑名单过滤 *@paramfbdword_filter *禁止语过滤 *@parampriority *优先级 *@paramvalid_time *短信有效时间 */ publicstaticbooleansendMessage(java.lang.Stringmobilephone, java.lang.Stringcontent,intoperId,java.lang.Stringtosend_time, intsms_id,shortbacklist_filter,shortfbdword_filter, shortpriority,java.lang.Stringvalid_time){ //单个手机号码发送 try{ SmsReturnObjretObj=SmsWebClient.webSendMessage(mobilephone, content,operId,tosend_time,sms_id,backlist_filter, fbdword_filter,priority,valid_time); if(retObj.getReturnCode()!=1){ log.info("短信发送失败,原因为:"+retObj.getReturnMsg()); returnfalse; }else{ log.info("短信发送成功!返回结果为:"+retObj.getReturnMsg()); returntrue; } }catch(Exceptionex){ ex.printStackTrace(); log.info("短信发送过程发生异常!"); } returntrue; } }

六:具体的短信接口demo到这里下,这里你下载了也不能成功的发送短信,因为你必须要短信平台商给你提供:url,userName,passWord,operId,以及短信平台商还要绑定你的外网ip地址,这样才能真正的发送短信。

Demo下载链接:/s/1qWt1Qdm

原文:/share/1881657001233408.htm

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。