写个 Package:新版阿里大于短信接口 for Laravel5.5
新版阿里大于短信接口的Laravel组件 (支持laravel5.5)
更新
20171104 v1.0.6
安装
composer require laramall/aliyun-dysms
系统要求
php >= 7.0
Laravel >= 5.5
设置配置文件
php artisan vendor:publish --provider="LaraMall\AlidySms\AlidySmsServiceProvider"
修改 config/sms.php 中的阿里大于短信相关参数
//id
'ACCESS_KEY_ID'=>'',
//秘钥
'ACCESS_KEY_SECRET'=>'',
//短信签名
'signName'=>'',
//短信模板编号
'templateCode'=>'',
//短信模板中变量字段
'field'=>'number',
//发送短信变量的内容
'content'=>rand(1000,9999),
使用
use Sms;
//发送短信
//短信发送成功下面链式操作返回 true 反之 false
Sms::put('phone','13800000000')->send();
发送参数默认设置
在config/sms.php做一些默认设置
//如图所示短信模板中的变量字段为number
'field'=>'number',
//短信的验证码内容
'content' => rand(1000,9999), // 或者 str_random(5)
自定义发送短信
//当有多个短信签名和短信模板的时候
//可以完全自定义发送不同类型的短信
Sms::put('phone',$phone) //接受短信的手机号码
->put('signName',$signName) //短信签名
->put('templateCode',$templateCode) // 短信模板编号
->put('field',$field) //短信模板中的变量字段
->put('content',$content) //短信中变量的内容 (也就是验证码)
->send(); //发送短信
上面链式表达式,短信发送成功返回 true 反之为 false
可以实现发送多种类型的短信(验证码、通知类型、或者推广短信)
短信验证码的正确性验证
//验证短信已写入表单验证规则
//假设表单中短信验证码的字段为 code
$rules = ['code'=>'required|sms'];
github地址:https://github.com/bluetoothswh/AlidySms
微信公众号
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
所以这个是广告吗
@风吹枫落 写个package ,顺便放下我们的公众号
~ 你要觉得有广告的嫌疑,我一会去掉二维码~@bluetoothswh 现在看起来好多了,我看的时候没有 github 地址,只有官网链接和二维码
@风吹枫落 :smiley:
这个版本应该不叫阿里大鱼了吧?已经合并到阿里云里面了
@raykwok 我们很早就开始使用阿里大于,后来阿里大于合并到了阿里云统一管理。
这个接口是基于阿里短信服务官方最新的SDK (20170525) 里面的名称依然是dysms,所以我们依然叫它阿里大于新接口。
不过名称确实应该改下,叫阿里短信服务接口更合适一些。
这个其他框架可以用不,比如ci、tp这样的
@keer 发送短信 是可以的,但是验证短信验证码的正确性的部分不支持!这个是为laravel5.5写的
文档很不全啊,如何设置要发送的验证码呢
@翁航 发送的短信验证码默认为 rand(10000,9999) 一个随机数字字符串。
改天我升级下,可以自定义发送短信验证码
@bluetoothswh 你这样做肯定是不合理的,这样就限制了验证码只能五位数。而且限制了只能发验证码,如果我想发一些通知类的短信呢
@翁航 是的,一开始 我们只是用于注册登录验证码。过两天我升级下 :simple_smile:
@bluetoothswh :+1:
短信模板编号 放到
config
里面,一个项目想发送多个模板的短信,就需要动态设置 短信模板编号 了@dividez 短信模板编号现在就是放在 config/sms.php中设置
@翁航 已经升级,可以自定义短信模板中的变量字段和短信验证码的内容 :laughing:
已经升级到所有参数均可自定义
如果您可以把常用的短信签名和短信模板编号 写入 config/sms.php中
简约发送短信模式
其实阿里云那个 可以直接 变成composer加在组件的 ,我再我的项目中就这样用的
@hainuo 是的,阿里云提供的SDK可以直接使用composer引用。
我只是额外把它制作成了Laravel的Package,可以更简洁的使用同时整合了短信正确性的表单验证。
请问一下 这个有没有验证啊过期这么一说呢? 比如发过短信后 隔一个小时再去填之类的 验证会通过吗?
@dptms 默认已加了短信验证。 表单中加入验证规则
阿里云的短信服务是有时效性限制的。
@bluetoothswh 意思是这个时效性不是代码里面设置的 ,而是阿里大于系统设置的?可以自己设置有效时间吗?比如说三分钟之类有效。
@dptms 使用同一个签名,对同一个手机号码发送短信验证码,1条/分钟,5条/小时,10条/天。一个手机号码通过阿里云短信服务平台只能收到40条/天。 组件包里面对短信的限制是 :一分钟内有效,一旦验证通过,写入session的验证码就会被销毁。
@bluetoothswh 这个一分钟的时效可以自己定义吗?麻烦了
@dptms 可以做一个判断,从短信发送 到验证短信的时间差,这个比较简单。
已Star,日后应该用得到!
为什么还没有收藏功能
@hyx50 点赞就是收藏吧?
作者,,你为什么要限制参数数量 一个 为 自定义参数名,,一个被你固定为 product 多个参数的短信模板怎么用。你这个包,拿来只能发单 字段 的模板了