您好,欢迎访问一九零五行业门户网

关于thinkphp下阿里大于短信验证

下面由thinkphp框架教程栏目给大家介绍thinkphp下阿里大于短信验证,希望对需要的朋友有所帮助!
本方法基于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部分功能已经具备,还待完善//发送手机ajaxfunction 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下阿里大于短信验证的详细内容。
其它类似信息

推荐信息