该方法基于Thinkphp,使用jquery.validate。当然,在具体的项目中不一定会用到。下面我一步一步写下来。一、准备工作1、登录http://www.alidayu.com,进入网站,使用淘宝账号登录2、进入管理中心3、配置(1)配置短信签名(2)配置短信模板搭建完成后,还需要什么就是APPkeyAPPsecret也可以测试2.数据库3.后端介绍下载Alidayu类文件,放在/Thinkphp/Library/org/Alidayu(文件夹要大写,骗自己,部署到服务器后会有问题)GeneralClass//生成短信验证码publicfunctioncreateSMSCode($length=4){$min=pow(10,($length-1));$max=pow(10,$length)-1;返回兰特($最小值,$最大值);}//发送验证码publicfunctionsend_phone($phone){$code=$this->createSMSCode($length=4);import('Org.Alidayu.top.TopClient');import('Org.Alidayu.top.ResultSet');import('Org.Alidayu.top.RequestCheckUtil');import('Org.Alidayu.top.TopLogger');import('Org.Alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest');$c=new\TopClient;$appkey="你的应用密钥";$secret="你的秘密;$c->appkey=$appkey;$c->secretKey=$secret;$req=new\AlibabaAliqinFcSmsNumSendRequest;$req->setExtend("");$req->setSmsType("正常");$req->setSmsFreeSignName("Achon测试");$req->setSmsParam("{name:'客户',code:'".$code."',time:'5分钟'}");$req->setRecNum($phone);$req->setSmsTemplateCode("SMS_71300157");$resp=$c->执行($req);$this->sendMsgResult($resp,$phone,$code);}//验证手机号是否发送成功。前端使用ajax。如果发送成功,会提示倒计时。例如私有函数sendMsgResult可以在50秒后重发($resp,$phone,$code){if($resp->result->success&&!$resp->result->code){$data['电话']=$电话;$数据['代码']=$代码;$data['send_time']=time();$result=M("code")->add($data);if($result){$data="发送成功";}else{$data="发送失败";}}elseif($resp->code||$resp->msg=="远程服务错误"){$data="发送失败";}else{$data="发送失败";}返回$数据;}//验证短信验证码是否有效,前端使用jqueryvalidate的remotepublicfunctioncheckSMSCode(){$mobile=$_POST['mobile'];$code=$_POST['code'];$nowTimeStr=date('Y-m-dH:i:s');$smscodeObj=M("code")->where("mobile='$mobile'")->find();如果($smscodeObj){$smsCodeTimeStr=$smscodeObj['send_time'];$recordCode=$smscodeObj['代码'];$flag=$this->checkTime($nowTimeStr,$smsCodeTimeStr);如果($flag&&$code==$recordCode){echotrue;}else{回声假;}}}在使用的??类中,我把它放在注册类中调用//发送短信,调用BaseController中的方法,因为其他模块也要用到这个方法publicfunctionsend_message(){$phone=I("post.电话”);//数据返回失败但不影响使用$data=$this->send_phone($phone);$this->ajaxReturn($data,"JSON");}4。前台一些ajax功能已经完成,有待完善//发送手机ajax函数send_message(){if($("#phoneinput").valid()){varphone=$("#phoneinput").val();$.post("{:U('Register/send_message')}","phone="+phone,function(data){});$("#send_message").html("发送成功");$("#send_message").css("背景颜色","#2f9cff");}}顺便欢迎交流QQ755092893
