• 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  iscms\Alisms\SendsmsPusher  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

  • 相关阅读:
    Shell脚本中cd命令使用
    OpenStack 的Nova组件详解
    Linux 查看网络连接状态
    Linux 怎么查看服务的启动进程所占用的目录
    邮政短信 运营商常见错误
    Linux 怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用
    Linux 命令行生成随机密码的十种方法
    Linux rpm安装问题解决
    Codeforces 1082G(最大权闭合子图)
    Codeforces 1105D (BFS)
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454766.html
Copyright © 2020-2023  润新知