配置
从终端或命令行进入您的项目目录执行
// 拉取阿里大鱼组件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