写入公共文件 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'=>[]]);
}
}