laravel中使用阿里大于短信

1.安装:在项目根目录下composer require iscms/alisms-for-laravel

2.配置:在config/app.php文件中数组providers添加一行

iscms\Alisms\AlidayuServiceProvider::class,

3.执行:在项目根目录下php artisan vendor:publish然后config目录下应该增加了alisms.php文件

<?php  
    return [
        'KEY' =>env('ALISMS_KEY',null),
        'SECRETKEY'=>env('ALISMS_SECRETKEY',null),
    ];

.env文件中配置:SMS

ALISMS_KEY=阿里大于证书账号
ALISMS_SECRETKEY=阿里大于证书密码

引入命名空间:use iscms\Alisms\SendsmsPusher;

protected static $sms = null;
//使用构造函数对静态属性进行初始化赋值
public function __construct(Sms $Sms)
{
    self::$sms = $Sms;
}
/**
*阿里大于短信插件方法,参数传入一个11位的数字
*$phone 用户的手机号
*$name 短信签名,阿里大鱼申请的短信签名的名字
*$content 替换短信模板中的变量,JSON字符串格式,所有值都是字符串,不能有整形
*$code 阿里大鱼申请的短信模板编号
*/
public function code(Request $request)
{
    $input = $request->all();
    // 判断该手机在10分钟内是否已经发过短信
    $exists = \Redis::exists('phone'.$input['phone']);
    f(!empty($exists)){
        return response()->json(['ResultData'=>'失败','info'=>'已发送,请十分钟之后再试']);
    }
    //随机验证码
    $num = rand(100000,999999);
    $smsParams = [
        //阿里大于定义的变量名
        'int'  => "$num",
        'name' => '你好,欢迎你使用本平台'
    ];
    //要发送的号码
    $phone = $input['phone'];
    //阿里大于短信签名
    $name = '签名名称';
    //数组,要发送的值
    $content = json_encode($smsParams);
    //你的短信模板ID
    $code = '你的模板ID';
    $data = self::$sms->send($phone,$name,$content,$code);
    //判断是否发送成功
    if(property_exists($data,'result')){
        //把手机号码存入redis缓存 设置600秒的有效时间
        \Redis::sEtex('phone'.$phone,600,$num);
        //发送成功返回成功
        return response()->json(['ResultData'=>'成功','info'=>'已发送']);
    }else{
         //发送失败返回失败
        return response()->json(['ResultData'=>'失败','info'=>'重复发送']);
    }
}

注意:以上使用时需要安装Predis这个laravel扩展,如果本地已安装了Redis的话就需要把Redis关闭,否则会与Preids冲突

内容来源:吕倡个人博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.安装:在项目根目录下composer require iscms/alisms-for-laravel 2.配...
    山欧巴阅读 492评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 3,174评论 0 9
  • 过去做事情急,什么东西拿起来就用,不喜欢进行系统性的学习,造成在使用过程中的错误和低效,现在感觉自己耐心多了,用之...
    马文Marvin阅读 2,029评论 0 10
  • 1 总有朋友跟我说,他家的小孩总是不听话,我就说,小孩子为什么要听你的话呢? 小孩子有自己的意志,你可以建议他怎么...
    币市柳少侠阅读 557评论 0 0