我下方使用的是 短信宝 这个第三方平台,您也可以使用腾讯云平台的_
在项目根目录下下载composer 包
composer require mrwanghongda/sms-sdk控制器中示例:
public function sendTel(Request $request)
    {
        //接收传递过来的手机号码
        $post = $request->get();
        //对手机号进行验证(略)
      
        $code = rand(1000,9999);
        //工厂模式
        $smsObj = (new SmsFactory(SmsFactory::SMS_BAO))->getSmsService();
        $config = [
            /* 填写平台对应的CAM密匙secretId,短信宝填写平台账号*/
            'secretId' => "*********",
            /* 填写平台对应的CAM密匙secretKey,短信宝填写平台密码*/
            'secretKey' => "********",
            /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 ,短信宝默认为空*/
            'smsSdkAppId' => '',
            /* 验证码,示例如5039 */
            'code' => $code,
            /* 填写腾讯、阿里平台对应的签名内容,短信宝则默认为空 */
            'signName' => '',
            /* 发送的手机号,示例如17899873465 */
            'tel' => $post['phone'],
            /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
            'templateId' => "",
            /* 模板发送的短信内容,短信宝则需要填写 如:"【短信宝】您的验证码是"5390",3分钟有效。", 腾讯、阿里默认为空 */
            'content' => '【短信宝】您的验证码是'.$code.',3分钟有效。',//
        ];
        $num  = cache('register_num_'.$post['phone']);
        $time = cache('register_time_'.$post['phone']);
        if ($num>5)
        {
            return fail('您今日发送次数已达上限制');
        }
        if (time()-$time<60)
        {
            return fail('发送太频繁,请稍后再试');
        }
            //这个请求是需要钱的,如果测试发送成功后,就可以关掉,自己再模拟一个发送成功的信息就好
        //$result = $smsObj->send($config);
        $result = ['code'=>200,'msg'=>'发送成功','data'=>$code];
        if ($result['code']==200)
        {
            //缓存验证码
            cache('register_code_'.$post['phone'],$code,180);
            //缓存时间
            cache('register_time_'.$post['phone'],time());
            //手机发送次数
            cache('register_num_'.$post['phone'],Cache::inc('register_num_'.$post['phone']));
            return $result;
        }
        return fail('发送失败');
    }详细情况可参考:https://github.com/Mrwanghongda/sms-sdk
*注:那个fail是我自己封装的api返回函数,详情可参考:
thinkPHP6 中自定义封装的api返回格式_qu776161的博客-CSDN博客


