Laravel SMS 短信发送包

Laravel Sms

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

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

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

包地址:ibrand/laravel-sms

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

讨论交流

原文地址:https://www.cnblogs.com/iBrand2018/p/10035820.html

时间: 2024-10-01 12:53:59

Laravel SMS 短信发送包的相关文章

SMS短信发送

---恢复内容开始--- http://sms.webchinese.cn/default.shtml 中国网建SMS短信发送平台. 利用该平台提供的API接口. 实现短信发送. 嗯...就是看该平台提供的API文档然后根据自己需求修改. http://sms.webchinese.cn/api.shtml  //api文档地址 package com.bnuz.xu; import java.io.IOException; import java.io.UnsupportedEncodingE

中国网建提供的SMS短信发送

一个简单的发送短信的小demo 第一步: 兄弟们,首先你们去中国网建的官网去注册一个账户:网址http://sms.webchinese.cn/reg.shtml 第二步: 注册完成之后会有免费的测试短信给你使用: 第三步:创建一个项目 是都是web的不是问题. 注意有三个包导入 需要用到的jar包共三个:   commons-logging-1.1.1.jar   commons-httpclient-3.1.jar   commons-codec-1.4.jar 第四部:写代码:注意从你的账

laravel中实现短信发送验证码

前段时间想实现一个短信验证码的功能,但是卡了很长时间. 首先我用的是阿里云的短信服务业务,其首次接入流程如下: 在阿里云上开通短信服务后需要做的: 1,申请签名  2,申请模板   3,创建Accesskey ,值得说的是,可以通过阿里云提供的子用户进行Accesskey的创建,这样可以更安全  4,充值 laravel有很多的进行短信业务的扩展包,之前我用的是阿里大于,使用如下: 1,从终端或者命令进入您的项,运行:composer require iscms/alisms-for-larav

Laravel实现用户注册短信发送

确定短信运营商 我这里采用的云片,不过大家使用其它的也可以. 首先自己注册一个帐号,然后找到这个 点击开始接入,完成新手引导过程. 第二部的签名和模板必须填写,类似我下面填写的这样 值得注意的是这个模板必须和你到时候用 easy-sms 包的时候,设定的短信内容必须和这个一模一样,不然会报错.还有就是记得一定得拿到APIKEY.在env里进行接口调用的配置. 2. 安装easy-sms包 利用这个包,可以快速的实现短信发送功能. 由于该组件还没有 Laravel 的 ServiceProvide

Java通过SMS短信平台实现发短信功能

在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese.cn/reg.shtml),下面是程序源码: /** * @Author dengsilinming * @Date 2012-9-18 * */ package com.dengsili

【SSH网上商城项目实战26】完成订单支付后的短信发送功能

上一节我们使用了Java mail完成了给买家发送邮件的功能,还遗留一个功能,就是给买家发送短信,告诉他订单已经生成之类的.这一节主要介绍一下如何在用户支付完成后自动给用户发送短信. 1.申请短信发送功能 很明显,我们自己不能发短信,也没有做短信的功能,所以我们需要去借助第三方的运营商.但是像中国移动,联通,电信这种不会直接给我们提供短信服务,而是先把短信服务提供给一些运营商,然后这些运营商再提供给我们.  有一个运营商叫“中国网建sms短信通”(官网地址).这个运营商可以给我们提供短信的服务,

spring-boot与阿里大于短信发送平台

申请短信模板 现在需要企业才能申请阿里大于的短信模板,故,略 spring-boot (1) 创建独立maven工程(jar),引入相关依赖 <!-- jdk版本 --> <properties> <java.version>1.7</java.version> </properties> <!-- parent依赖 --> <parent> <groupId>org.springframework.boot&

JAVA实现第三方短信发送

JAVA实现第三方短信发送 要想使代码生效需要注册: http://sms.webchinese.cn/default.shtmlhttp://sms.webchinese.cn/default.shtml 在muven项目里面导入jar包 <dependencies> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId>

destoon 短信发送函数及短信接口修改

// $DT在common.inc.php中定义, $CACHE = cache_read('module.php'); $DT = $CACHE['dt'];  从缓存里读取网站配置信息. //$db 数据库类,$DT 全局配置,$DT['sms'] 开启手机短信,$DT_TIME系统时间,$DT_IP 当前ip地址,$_username当前用户 //DT_CLOUD_UID  DT_CLOUD_KEY 在common.inc.php 中定义 //define('DT_CLOUD_UID',