zoukankan      html  css  js  c++  java
  • Laravel5中使用阿里大于(鱼)发送短信验证码

    在做用户注册和个人中心的安全管理时,我实现借助第三方短信平台(阿里大于(鱼))在Laravel框架中进行手机验证的设置;阿里大于,是阿里通信旗下优质便捷的云通信服务平台,整合了三大运营商的通信能力,为开发者提供简洁易用的短信/语音API,三网合一通道,按需付费。

    安装laravel阿里大于(鱼)服务

    1
    composer require iscms/alisms-for-laravel

    注册服务(config/app.php)

    在文件中找到Providers数组,写入

    1
    iscms/Alisms/AlidayuServiceProvider::class

    生成阿里大于(鱼)配置文件(config文件夹)

    1
    php artisan vendor:publish

    修改阿里大于(鱼)配置文件(alisms.php)文件为:

    1
    2
    3
    4
    5
    <?php
      return 
          'KEY' =>env('ALISMS_KEY',null),
          'SECRETKEY'=>env('ALISMS_SECRETKEY',null)
      ];

    laravel根目录下找到.env文件,把阿里大鱼的App key和配置成全局变量(http://www.alidayu.com/)

    1
    2
    ALISMS_KEY=234*****3
    ALISMS_SECRETKEY=****************

    在您需要调用短信服务的控制器中,引用SMS

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     use iscmsAlismsSendsmsPusher as Sms;
     
     public function __construct(Sms $sms)
        {
           $this->sms=$sms;
        }
     public function Alidayu(Request $request){
        $phone $request ->input('phone','1508*****55'); // 用户手机号,接收验证码
        $name '小张个人博客';  // 短信签名,可以在阿里大鱼的管理中心看到
        $num = rand(100000, 999999); // 生成随机验证码
        $smsParams = [
            'number' => "$num"
        ];
        $content = json_encode($smsParams); // 转换成json格式的
        $code "SMS_63****73";   // 阿里大于(鱼)短信模板ID
        $request ->session()->put('alidayu',$num);  // 存入session 后面做数据验证
     
        $result=$this->sms->send($phone,$name,$content,$code);
        echo "验证码:".session('alidayu').'<br/>';
        if(property_exists($request,'result')){
           // 使用PHP函数json_encode方法将给定数组转化为JSON:
            return json_encode(['ResultData' => '成功''info' => '已发送']);
        }else{
            return json_encode(['ResultData' => '失败''info' => '重复发送']);
        }

    参数说明:

    $phone 手机号,用户输入的手机号
    $name  短信签名,阿里大鱼申请的短信签名的名字
    $content 替换短信模板中的变量,JSON字符串格式,所有值都是字符串,不能有整形
    $code   阿里大鱼申请的短信模ID:SMS_39***4

    阿里大于(鱼)短信模板(http://www.alidayu.com/)

    1
    2
    3
     模板名称: 身份验证
     模板ID: SMS_39***4
     *模板内容:验证码${code},您正在进行个人身份验证,打死不要告诉别人哦!

    那么里面存在着变量${code}需要替换成验证码,那么对应的$content 就应该为{code:"生成的验证码,如:123456"}

    到这里Laravel5使用阿里大于(鱼)发送短信验证码应该没有问题了,开始发送短信吧~ ^_^
    alisms-for-laravel:https://packagist.org/packages/iscms/alisms-for-laravel

  • 相关阅读:
    Spring注解@Component、@Repository、@Service、@Controller区别
    多线程基本知识
    分布式与集群的区别
    Top 10 Uses For A Message Queue
    redis 总结
    redis 学习
    线程控制-延时与守护
    kafka 教程(一)-初识kafka
    Kafka 教程(二)-安装与基础操作
    ZooKeeper-安装
  • 原文地址:https://www.cnblogs.com/lxwphp/p/8065146.html
Copyright © 2011-2022 走看看