Laravel对接阿里云SMS发送短信验证码

本案例采用Laravel5.6对接阿里云SMS发送短信验证码,【全干货】,按步骤操作即可完成。

在部署环境之前,我们需要去阿里云平台注册一个账号,个人账号和公司账号都可以,注册完成后,复制access_key和access_secret配置在项目中就完成了项目的基本设置。

一. 新建项目,安装Laravel5.6版本的框架代码

1. 环境配置要求

Laravel 对系统有一些要求,您的服务器满足下面的要求:

  • PHP >= 7.1.3

  • OpenSSL PHP

  • PHP PDO 扩展

  • PHP Mbstring 扩展

  • PHP Tokenizer 扩展

  • PHP XML 扩展

  • PHP Ctype 扩展

  • PHP JSON 扩展

备注:您需要达到以上的配置要求,这个就不具体详细说明,具体看PHP语法

2. 安装Laravel5.6框架

Laravel5.6使用 Composer 来管理项目依赖。因此,在使用 Laravel5.6之前,请确保你的机器已经安装了 Composer

composer -v

Laravel对接阿里云SMS发送短信验证码_第1张图片

// 未安装composer,请参照以下网址安装https://www.phpcomposer.com/

备注:composer具体安装请参照上面链接,按文档安装即可.

下面我们具体安装Larvael5.6框架,在控制窗口输入一下内容(本人windows操作系统),等待安装完成。

composer create-project --prefer-dist laravel/laravel blog

安装完成后执行以下代码,为应用程序设置随机字符串密钥。

php artisan key:generate

在浏览器中输入:http://localhost/blog/public/index.php,看到如下界面就是访问正常了。
Laravel对接阿里云SMS发送短信验证码_第2张图片

3. composer.json配置阿里云组件包

require中添加"mrgoon/aliyun-sms": "dev-master"

“require”: {    
    “php”: “^7.1.3”,   
    “fideloper/proxy”: “^4.0”,    
    “laravel/framework”: “5.8.*”,    
    “laravel/tinker”: “^1.0”,
    "mrgoon/aliyun-sms": "dev-master"
}

然后执行命令:

composer update
composer dumpautoload

Laravel对接阿里云SMS发送短信验证码_第3张图片
组件下载完成后,如下图:

Laravel对接阿里云SMS发送短信验证码_第4张图片

里面已经有阿里云的SDK包了,配置文件也生成了。

Laravel对接阿里云SMS发送短信验证码_第5张图片

4、开通短信服务

1、登录阿里云网站,点击短信服务,进入开通。

Laravel对接阿里云SMS发送短信验证码_第6张图片

2、点击国内消息

Laravel对接阿里云SMS发送短信验证码_第7张图片

3、添加签名

Laravel对接阿里云SMS发送短信验证码_第8张图片4、添加模板

Laravel对接阿里云SMS发送短信验证码_第9张图片

 

5. 配置阿里云access_key和access_secret配置

这里很关键:我的是单独写了一个文件进行配置

第一步:在config/app.phpproviders下添加:

'providers'  =>  [Mrgoon\AliSms\ServiceProvider::class,],

第二步:在app/aliyunsms.php中添加配置:

return [    
    'access_key'    => env('ALIYUN_SMS_AK', '填你自己的'),     
    'access_secret' => env('ALIYUN_SMS_AS', '填你自己的'), 
],

第三步:在.env文件中配置常量

ALIYUN_ACCESSKEYID=填你自己的

文件就已经配置完成。

二. 编写接口控制器方法

新建控制器:UploadsController 继承 Controller类,方便操作。

第一步:编写API路由

Route::post('/index/sendsms', '\App\Http\Controllers\Index\SmsController@index');

第二步:编写控制器,发送短信(核心代码)

mobile))  {
            return  array_format('手机号格式错误',  414);
        }

        //发送过快验证
        $repeat_cache_key  =  md5($request->mobile  .  $request->type  .  'repeat');

        if  (cache()->store('file')->has($repeat_cache_key))  {
            return  array_format('发送过快,请稍后再试',  414);
        }

        $mobile_code  =  rand_num(6);
        $sms  =  new  \AliSms();
        $temp  =  $sms->sendSms($request->mobile,  '填你自己的',  ['code'=>  $mobile_code]);
        if  (!$temp)  {
          return  array_format('发送短信失败',  414);
        }
        //缓存验证码
        $cache_key  =  md5($request->mobile);
        cache()->store('file')->put($cache_key,  $mobile_code,  5); 
        cache()->store('file')->put($repeat_cache_key,  $mobile_code,  0.1);
        return  array_format('发送成功',  200);
    }
}

. Postman工具接口测试

Laravel对接阿里云SMS发送短信验证码_第10张图片

了解更多干货知识请关注公众号Laravel技术社区

你可能感兴趣的:(技术,php)