写个 Package:新版阿里大于短信接口 for Laravel5.5

新版阿里大于短信接口的Laravel组件 (支持laravel5.5)

file

更新

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),

使用

file

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

微信公众号

file

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 29
风吹枫落

所以这个是广告吗

6年前 评论

@风吹枫落 写个package ,顺便放下我们的公众号~ 你要觉得有广告的嫌疑,我一会去掉二维码~

6年前 评论
风吹枫落

@bluetoothswh 现在看起来好多了,我看的时候没有 github 地址,只有官网链接和二维码

6年前 评论

这个版本应该不叫阿里大鱼了吧?已经合并到阿里云里面了

6年前 评论

@raykwok 我们很早就开始使用阿里大于,后来阿里大于合并到了阿里云统一管理。
这个接口是基于阿里短信服务官方最新的SDK (20170525) 里面的名称依然是dysms,所以我们依然叫它阿里大于新接口。
不过名称确实应该改下,叫阿里短信服务接口更合适一些。

6年前 评论

这个其他框架可以用不,比如ci、tp这样的

6年前 评论

@keer 发送短信 是可以的,但是验证短信验证码的正确性的部分不支持!这个是为laravel5.5写的

6年前 评论

文档很不全啊,如何设置要发送的验证码呢

6年前 评论

@翁航 发送的短信验证码默认为 rand(10000,9999) 一个随机数字字符串。
改天我升级下,可以自定义发送短信验证码

6年前 评论

@bluetoothswh 你这样做肯定是不合理的,这样就限制了验证码只能五位数。而且限制了只能发验证码,如果我想发一些通知类的短信呢

6年前 评论

@翁航 是的,一开始 我们只是用于注册登录验证码。过两天我升级下 :simple_smile:

6年前 评论
dividez

短信模板编号 放到 config 里面,一个项目想发送多个模板的短信,就需要动态设置 短信模板编号 了

6年前 评论

@dividez 短信模板编号现在就是放在 config/sms.php中设置

6年前 评论

@翁航 已经升级,可以自定义短信模板中的变量字段和短信验证码的内容 :laughing:

6年前 评论

已经升级到所有参数均可自定义

Sms::put('phone',$phone)  //接受短信的手机号码
   ->put('signName',$signName) //短信签名
   ->put('templateCode',$templateCode) //短信模板编号
   ->put('field',$field) //短信模板中的变量字段
   ->put('content',$content)  //短信模板中字段的值 也就是短信验证码内容
   ->send(); //发送短信

如果您可以把常用的短信签名和短信模板编号 写入 config/sms.php中

    //短信签名
    'signName'=>'',
    //短信模板编号
    'templateCode'=>'',

简约发送短信模式

Sms::put('phone',$phone)->send(); 

//前提条件
短信签名+ 短信模板编号已在config/sms.php中做了设置
短信模板中变量字段为 :number
短信验证码内容为 rand(1000,9999)
6年前 评论
hainuo

其实阿里云那个 可以直接 变成composer加在组件的 ,我再我的项目中就这样用的

6年前 评论

@hainuo 是的,阿里云提供的SDK可以直接使用composer引用。
我只是额外把它制作成了Laravel的Package,可以更简洁的使用同时整合了短信正确性的表单验证。

6年前 评论

请问一下 这个有没有验证啊过期这么一说呢? 比如发过短信后 隔一个小时再去填之类的 验证会通过吗?

6年前 评论

@dptms 默认已加了短信验证。 表单中加入验证规则

 $rules = ['code' =>'requried|sms' ]

阿里云的短信服务是有时效性限制的。

6年前 评论

@bluetoothswh 意思是这个时效性不是代码里面设置的 ,而是阿里大于系统设置的?可以自己设置有效时间吗?比如说三分钟之类有效。

6年前 评论

@dptms 使用同一个签名,对同一个手机号码发送短信验证码,1条/分钟,5条/小时,10条/天。一个手机号码通过阿里云短信服务平台只能收到40条/天。 组件包里面对短信的限制是 :一分钟内有效,一旦验证通过,写入session的验证码就会被销毁。

6年前 评论

@bluetoothswh 这个一分钟的时效可以自己定义吗?麻烦了

6年前 评论

@dptms 可以做一个判断,从短信发送 到验证短信的时间差,这个比较简单。

6年前 评论

已Star,日后应该用得到!

6年前 评论

为什么还没有收藏功能

6年前 评论

@hyx50 点赞就是收藏吧?

6年前 评论

作者,,你为什么要限制参数数量 一个 为 自定义参数名,,一个被你固定为 product 多个参数的短信模板怎么用。你这个包,拿来只能发单 字段 的模板了

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!