Laravel 阿里大鱼短信接口

时间:2022-09-25 20:59:01

配置

从终端或命令行进入您的项目目录执行

// 拉取阿里大鱼组件composer require iscms/alisms-for-laravel

在 config/app.php 的 providers 数组中配置

iscms\Alisms\AlidayuServiceProvider::class,

在项目根目录执行

// 生成配置文件php artisan vendor:publish

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

<?php

return [ '

          KEY' =>env('ALISMS_KEY',null), 

          'SECRETKEY'=>env('ALISMS_SECRETKEY',null),

];

然后你需要在你项目的 .ENV 配置文件中写入 SMS 配置

ALISMS_KEY=31663166

ALISMS_SECRETKEY=**************

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

开始使用

博主项目示例, 首先在命名空间里引入, 然后拼接发送参数再发送.

<?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($exists === true){

    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); // 检查对象是否具有 result 属性

if(property_exists($data, 'result')){ 

  // 设置一个 60 秒过期的 Redis String 类型

\Redis::sEtex('IT:STRING:USER:CODE:' . $phone, 600, $num); 

return response()->json(['ResultData' => '成功', 'info' => '已发送']);

}else{ 

return response()->json(['ResultData' => '失败', 'info' => '重复发送']);

}

}

参数

send 方法参数

  • $phone 指接受短信方的短信号码

  • $name 指短信签名 可以在阿里大鱼短信签名 http://www.alidayu.com/admin/service/sign 找到

  • $content 是指短信模板中的变量内容

在自己的阿里大鱼模板里面有下面一个短信模板, 那么里面存在着 2 个变量需要替换, 一个是 ${code}, 一个是 ${product}, 那么对应的我们的 $content 就应该为

{

code: "生成的验证码",

product: "示例项目"}

$code 指在阿里云中的模板 ID, 上面的例子中使用了一个身份验证模板, 那 $code 应该填写 SMS_3166316.

来源于:http://aabvip.com