资讯专栏INFORMATION COLUMN

thinkphp下阿里大于短信验证

FWHeart / 616人阅读

摘要:本方法基于,用到了,当然具体项目中也可以不用,下面我就按步骤来写下来。

本方法基于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");
        }

}


by the way 欢迎交流 QQ755092893

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23256.html

相关文章

  • thinkphp阿里短信服务,替代原来的阿里大于

    摘要:之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于首先还是接入,上图找到短信服务设置短信签名和短信模板设置或找到或下载文档打开下载下来的文档,只需要,将其改名为,并放到项目根目 之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于 首先还是接入,上图: (1)找...

    mj 评论0 收藏0
  • 阿里大于验证码功能

    摘要:经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。 最近在做一个商城的项目,其中注册、找回密码、换绑手机等功能都需要用到验证码,考虑到上线的安全问题,我决定用手机验证码来提高安全性。经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。 1.登录平台 阿里大...

    jokester 评论0 收藏0
  • 阿里大于验证码功能

    摘要:经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。 最近在做一个商城的项目,其中注册、找回密码、换绑手机等功能都需要用到验证码,考虑到上线的安全问题,我决定用手机验证码来提高安全性。经过各大短信平台进行比较后,选择了阿里大于,一个阿里巴巴的云通信平台,下面我将这次开发经验和遇到的一些问题分享出来。 1.登录平台 阿里大...

    CoderDock 评论0 收藏0
  • 伸手党来吧。thinkphp,新阿里大鱼短信发送,sdk那么多东西,是不是很烦啊

    摘要:新版下载下来,集成了很多东西,自己看着都烦,不多说,上源码我写了两个类线上地址公共参数发送短信电话号码短信签名短信模板代码短信模板参数缺少参数缺少参数缺少参数缺少参数计算签名网络请求 新版sdk下载下来,集成了很多东西,自己看着都烦,不多说,上源码我写了两个类AliSms.class.php class AliSms { //线上地址 const API_DOAMIN = http:/...

    lidashuang 评论0 收藏0
  • thinkphp实现短信验证注册

    摘要:前言注册时经常需要用到短信验证码,本文记录一下思路和具体实现。短信验证平台使用云片,短信验证码的生成使用。云片发送短信验证码到指定手机号。用户输入短信验证码。 前言 注册时经常需要用到短信验证码,本文记录一下思路和具体实现。短信验证平台使用云片,短信验证码的生成使用thinkphp。 思路 1、用户输入手机号,请求获取短信验证码。2、thinkphp生成短信验证码,存储,同时和其他参数...

    stackfing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<