thinkphp6 手机短信验证码发送服务封装和使用

写入公共文件  tp>app>common.php

记得改一下自己注册的账号密码

<?php
// 这是系统自动生成的公共文件
if(!function_exists('phone_cache'))
{
    function phone_cache($tel)
    {
        //生成随机数,就是要发送的验证码
        $sumber=rand(1111,9999);
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
        );
        //发送验证码的接口
        $smsapi = "http://api.smsbao.com/";
        $user = "*****"; //短信平台帐号
        $pass = md5("***"); //短信平台密码
        //我用的是短信宝,上面的账号密码就是短信宝的账号密码,可以复制这个网址注册一个  http://console.smsbao.com/#/login?redirect=%2Findex
        $content="[学习测试]:你的验证码是$sumber,10分钟内有效,请不要告诉别人";//要发送的短信内容
        //函数传过来的电话号
        $phone = "$tel";//要发送短信的手机号码
        //将平台账号,密码,手机号,发送的短信拼接在一起
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        //用来执行上面拼接好的语句
        $result =file_get_contents($sendurl) ;
        //缓存 ,$sumber=rand(1111,9999);这个函数生成的随机数验证码缓存起来
        Cache::set('cache_'.$tel,$sumber,10*60);  
     //还可以这样存 \cache($phone,$capt,60); 这样取 \cache($phone);
        // 第一个参数:缓存名字(用.将手机号拼接起来)
        //第二个参数:上面生成的随机数验证码
        //第三个参数:过期时间 10*60代表10分钟
    }

}

使用封装好的函数

  //手机验证码 这里是在控制器
    public function captcha(Request $request)
    {
        //接收传过来的手机号
        $tel=$request->param('tel');
        //这是调用封装好的函数
        $phone=phone_cache($tel); //手机号传进去,就可以给这个手机号发送随机验证码了
       //写到这里就可以发送给手机验证码了
        

    }
   public function register(Request $request)
   {
    接收发送给手机的验证码
    $capt=$request->param('capt');
     //接收手机号,
     $tel=$request->param('tel');
      //将缓存的验证码取出来
     $cache=Cache::get('cache_'.$tel);
    //判断缓存里的验证码和你填写的验证码是否一样
     if($capt!=$cache)
     {
        return json(['code'=>300,'mes'=>'验证码不正确','data'=>[]]);
     }




   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值