首页 / PHP / 关于thinkphp下阿里大于短信验证
关于thinkphp下阿里大于短信验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于thinkphp下阿里大于短信验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2993字,纯文字阅读大概需要5分钟。
内容图文
![关于thinkphp下阿里大于短信验证](/upload/InfoBanner/zyjiaocheng/276/b937079787e640a59256644db157b2ce.jpg)
本方法基于Thinkphp,用到了jquery.validate,当然具体项目中也可以不用,下面我就按步骤来写下来。
1.准备
1.登陆
http://www.alidayu.com,进入网址
用淘宝号登陆即可
2.进入管理中心
3.配置
(1)配置短信签名
(2)配置短信模板
建好后,需要的东西就是APPkey APPsecret
还可以进行测试
2.数据库
3.后端
引入
下载阿里大于类文件,放在/Thinkphp/Library/org/Alidayu(文件夹要大写,坑过自己,部署到服务器后出问题)
通用类里
// 生成短信验证码 public function createSMSCode($length = 4){ $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max); } //发送验证码 public function send_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="你的appkey"; $secret="你的secret; $c ->appkey = $appkey ; $c ->secretKey = $secret ; $req = new \AlibabaAliqinFcSmsNumSendRequest; $req ->setExtend( "" ); $req ->setSmsType( "normal" ); $req ->setSmsFreeSignName( "阿尚测试" ); $req ->setSmsParam( "{name:'客户',code:'".$code."',time:'5分钟'}" ); $req ->setRecNum( $phone); $req ->setSmsTemplateCode( "SMS_71300157" ); $resp = $c ->execute( $req ); $this->sendMsgResult($resp,$phone,$code); } //验证手机号是否发送成功 前端用ajax,发送成功则提示倒计时,如50秒后可以重新发送 private function sendMsgResult($resp,$phone,$code){ if ($resp->result->success && !$resp->result->code) { $data['phone']=$phone; $data['code']=$code; $data['send_time']=time(); $result=M("code")->add($data); if($result){ $data="发送成功"; }else{ $data="发送失败"; } } else if ($resp->code || $resp->msg == "Remote service error") { $data="发送失败"; } else { $data="发送失败"; } return $data; } // 验证短信验证码是否有效,前端用jquery validate的remote public function checkSMSCode(){ $mobile = $_POST['mobile']; $code = $_POST['code']; $nowTimeStr = date('Y-m-d H:i:s'); $smscodeObj = M("code")->where("mobile='$mobile'")->find(); if($smscodeObj){ $smsCodeTimeStr = $smscodeObj['send_time']; $recordCode = $smscodeObj['code']; $flag = $this->checkTime($nowTimeStr, $smsCodeTimeStr); if($flag&&$code==$recordCode){ echo true; }else{ echo false; } } }
用的类里,我是放在注册类里调用
//发送短信,调用BaseController里的方法,因为其他模块也要用到这方法
public function send_message(){ $phone=I("post.phone"); //data返回失败 但不影响使用 $data=$this->send_phone($phone); $this->ajaxReturn($data,"JSON"); }
4.前台 ajax部分功能已经具备,还待完善
//发送手机ajax function send_message() { if($("#phone input").valid()){ var phone=$("#phone input").val(); $.post("{:U('Register/send_message')}","phone="+phone,function(data){ }); $("#send_message").html("发送成功"); $("#send_message").css("background-color","#2f9cff"); } }
以上就是关于thinkphp下阿里大于短信验证的详细内容。
本文系统来源:https://www.php.cn/phpkj/thinkphp/466671.html内容总结
以上是互联网集市为您收集整理的关于thinkphp下阿里大于短信验证全部内容,希望文章能够帮你解决关于thinkphp下阿里大于短信验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。