博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel SMS 短信发送包
阅读量:6262 次
发布时间:2019-06-22

本文共 1874 字,大约阅读时间需要 6 分钟。

Laravel Sms

Laravel 贴合实际需求同时满足多种通道的短信发送组件

我们基于业务需求在 基础进行扩展开发,主要实现如下目标:

  1. 支持短信验证码直接在 config 中配置模板ID
  2. 支持短信验证码自定义长度
  3. 支持短信验证码有效分钟,默认5分钟
  4. 支持短信验证码重试次数,防止用户意外输错验证码导致需要再次发送验证码的问题。
  5. 支持短信验证码未验证时,用户再次请求验证码,在有效分钟内验证码保持一致。
  6. 集成短信发送路由,支持 web 和 api 发送方式。
  7. 支持验证码调试,debug 模式下可直接查询手机号目前有效的验证码
  8. 支持验证码发送记录到数据库,方便查看发送日志和错误原因
包地址:

TODO:

  1. 支持语音验证码

安装

composer require ibrand/laravel-sms:~1.0 -vvv

低于 Laravel5.5 版本

config/app.php 文件中 'providers' 添加

iBrand\Sms\ServiceProvder::class

config/app.php 文件中 'aliases' 添加

'Sms'=> iBrand\Sms\Facade::class

使用

发送验证码

实现了发送短信验证码路由,支持 web 和 api ,可以自定义路由的 prefix。

'route' => [        'prefix' => 'sms',        'middleware' => ['web'],    ],    or'route' => [        'prefix' => 'sms',        'middleware' => ['api'],    ],

POST请求 http://your.domain/sms/verify-code

参数:mobile

备注:为了支持开发时的调试,在发送验证码时不去验证手机号本身的有效性,请在发送验证码前自行验证。

返回参数:

{    "status": true,    "message": "短信发送成功"}

验证验证码

use iBrand\Sms\Facade as Sms;        if (!Sms::checkCode(\request('mobile'), \request('code'))) {            //Add you code.        }

配置模板 ID

config/ibrand/sms.phpgateways 参数可以直接添加 code_template_id 来配置模板 id

// 可用的网关配置        'gateways' => [            'errorlog' => [                'file' => '/tmp/easy-sms.log',            ],            'yunpian' => [                'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',            ],            'aliyun' => [                'access_key_id' => 'dalvTXXX',                'access_key_secret' => 'XXXX',                'sign_name' => '阿里云短信测试专用',                'code_template_id' => 'SMS_80215252'            ],            'alidayu' =>                 //...            ],        ],

配置 Content

非模板类通道,可以通过 config/ibrand/sms.php 自定义短信内容

'content' => '【your signature】亲爱的用户,您的验证码是%s。有效期为%s分钟,请尽快验证。'

debug

在实际开发中会存在并不用真实发出验证码的情况,因此在 debug 模式下,可以通过

http://your.domain/api/sms/info?mobile=1898888XXXX 来直接只看某个手机号当前有效验证码信息。

欢迎大家 star 和提交 issue :)

讨论交流

iBrand联系我们

转载地址:http://tucpa.baihongyu.com/

你可能感兴趣的文章
图片裁剪和异步上传插件--一步到位(记录)
查看>>
在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
查看>>
【分享】博客美化(7)推荐几个优秀的自定义博客
查看>>
人工智能和机器学习领域的一些有趣的开源项目
查看>>
python sorted排序
查看>>
python中xrange和range的异同
查看>>
PHP根据ASCII码返回具体的字符
查看>>
atitit.系统架构图 的设计 与工具 attilax总结
查看>>
URAL 1774 A - Barber of the Army of Mages 最大流
查看>>
处理器(CPU)调度问题
查看>>
leetcode - 位运算题目汇总(下)
查看>>
多少个矩形被覆盖
查看>>
22、ASP.NET MVC入门到精通——搭建项目框架
查看>>
3-7 类的友元函数的应用
查看>>
IntelliJ IDEA安装 一些配置
查看>>
【算法之美】求解两个有序数组的中位数 — leetcode 4. Median of Two Sorted Arrays
查看>>
post请求和get请求
查看>>
零成本实现接口自动化测试 – Java+TestNG 测试Restful service
查看>>
源码安装php时出现Sorry, I cannot run apxs. Possible reasons follow:
查看>>
使用T4模板生成POCO类
查看>>