Laravel 集成 阿里大于 短信接口

一、配置

1.从终端或命令行进入您的项目目录,运行

composer require iscms/alisms-for-laravel  

2.在config/app.phpproviders数组中配置

iscms\Alisms\AlidayuServiceProvider::class,  

3.在项目根目录执行

php artisan vendor:publish  

4.您的config目录应该增加了alisms.php配置文件

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

5.然后您需要在您项目的.ENV 配置文件中写入 SMS 配置 例如

   ALISMS_KEY=31663166
   ALISMS_SECRETKEY=**************

此处ALISMS_SECRETKEY是指您的账户应用密码,请勿透露给他人

二、开始使用

1.首先在命名空间里引入

<?php

namespace App\Http\Controllers\home;  
use App\Http\Controllers\Controller;  
use Illuminate\Support\Facades\Redis as Redis;  
use iscms\Alisms\SendsmsPusher as Sms;

class RegisterController extends Controller  
{
    public $sms;

    public function __construct(Sms $sms)
    {
        $this->sms=$sms;
    }

    public function code(Request $request)
    {

        $input = $request->all();
        // 判断该手机在10分钟内是否已经发过短信
        $exists = \Redis::exists('IT:STRING:USER:CODE:'.$input['phone']);

        if(!empty($exists)){
            return response()->json(['ResultData'=>'失败','info'=>'重复发送']);
        }

        $num = rand(100000,999999);
        $smsParams = [
            'code'    => "$num",
            'product' => '案例展示'
        ];

        $phone = "$input[phone]";
        $name = '注册验证';
        $content = json_encode($smsParams);
        $code = 'SMS_3166316';
        //
        $data=$this->sms->send("$phone","$name","$content","$code");
        if(property_exists($data,'result')){
            \Redis::sEtex('IT:STRING:USER:CODE:'.$phone,600,$num);
            return response()->json(['ResultData'=>'成功','info'=>'已发送']);
        }else{
            return response()->json(['ResultData'=>'失败','info'=>'重复发送']);
        }
    }
}

  1. 返回执行发送的结果

参数说明

在开始使用中 send 方法一共加入了4个参数

$phone,$name,$content,$code

$phone 指接受短信方的短信号码,
$name 指短信签名 可以在阿里大鱼短信签名 http://www.alidayu.com/admin/service/sign 找到
$content 是指短信模板中的变量内容.举个例子

在自己的阿里大鱼模板里面有下面一个短信模板

那么里面存在着2个变量需要替换,一个是${code} ,一个是${product}

那么对应的我们的$content 就应该为

{
  code:"生成的验证码",
  product:"示例项目"
}

$code 指在阿里云中的模板ID,上面的例子中使用了一个身份验证模板,那$code 应该填写 SMS_3166316
【原文地址】
Laravel 集成 阿里大于 短信接口

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 一、配置 1.从终端或命令行进入您的项目目录,运行 composer require iscms/alisms-f...
    吴涛涛阅读 647评论 0 2
  • PhpSms 可能是目前最聪明、优雅的php短信发送库了。从此不再为各种原因造成的个别短信发送失败而烦忧! php...
    小漠不漠阅读 1,311评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • Fergus Henderson 是 Google 的资深工程师,他领导着google的 Text-to-spee...
    灯下鼠阅读 1,239评论 9 9