2017 © Pedro Peláez
 

package sms

Laravel 5 PhpSms Package

image

laravelsms/sms

Laravel 5 PhpSms Package

  • Thursday, January 18, 2018
  • by phper2013
  • Repository
  • 1 Watchers
  • 35 Stars
  • 392 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 7 Forks
  • 2 Open issues
  • 1 Versions
  • 15 % Grown

The README.md

laravel sms

Latest Version on Packagist ![Software License][ico-license] Build Status ![Coverage Status][ico-scrutinizer] [Quality Score][link-code-quality] ![Total Downloads][ico-downloads], (*1)

基于 laravel 5.3+ 开发的轻量化手机短信服务包,特点:简单,灵活, (*2)

支持:阿里云短信、云片网络、容联·云通讯、赛邮·云通讯、Luosimao、腾讯云短信, (*3)

适合场景:手机验证、订单消息、通知提醒等, (*4)

安装

Via Composer, (*5)

``` php composer require laravelsms/sms:dev-master, (*6)

or, (*7)

composer require laravelsms/sms, (*8)


composer.json ``` php "laravelsms/sms": "dev-master"

配置

``` php //服务提供者 'providers' => [ // ... Laravelsms\Sms\SmsServiceProvider::class, ], (*9)

//别名 'aliases' => [ //... 'Sms' => Laravelsms\Sms\Facades\Sms::class,
], (*10)

//创建配置文件 php artisan vendor:publish --tag=phpsms, (*11)



## 配置项(.env) > 以下为本程序所支持的短信代理平台的配置参考: ``` php //默认短信平台 SMS_DEFAULT=aLiYun //备用短信平台(非自动化,仅作为变量提供,需自行程序处理,适合当主平台出现状况后使用。) SMS_FALLBACK=subMail //默认签名(重要:签名要用{}括起来) SMS_SIGNNAME={辣妈羊毛党} YUNPIAN_APIKEY=your-appkey YUNPIAN_TEMPLATECONTENT=模板内容 //参考:您的验证码是{verifyCode},有效期为{time}分钟,请尽快验证 LUOSIMAO_APIKEY=your-appkey LUOSIMAO_TEMPLATECONTENT=模板内容 //参考:{verifyCode}是您请求的验证码 SUBMAIL_APPID=your-appid SUBMAIL_APIKEY=your-appkey SUBMAIL_TEMPLATEID=模板ID //(project Id)参考:3OZtl YUNTONGXUN_ACCOUNTSID=your-account-sid YUNTONGXUN_ACCOUNTTOKEN=your-account-token YUNTONGXUN_APPID=your-appid YUNTONGXUN_TEMPLATEID=模板ID //参考:1~N ALIYUN_APPKEY=your-appkey ALIYUN_APPSECRET=your-appsecret ALIYUN_TEMPLATEID=模板ID //参考:SMS_57930028 QQYUN_APPID=your-sdkappid QQYUN_APPKEY=your-appkey QQYUN_TEMPLATEID=模板ID //参考:76068

使用示例

1、使用不同的短信平台

``` php //调用默认短信平台 $smsDriver = Sms::driver();, (*12)

//调用备用短信平台 $smsDriver = Sms::driver('fallback');, (*13)

$smsDriver = Sms::driver('aLiYun');, (*14)

$smsDriver = Sms::driver('yunPian');, (*15)

$smsDriver = Sms::driver('yunTongXun');, (*16)

$smsDriver = Sms::driver('subMail');, (*17)

$smsDriver = Sms::driver('luoSiMao');, (*18)

$smsDriver = Sms::driver('qqYun');, (*19)

### 2、程序自带标签变量说明

``` php
{verifyCode} 模板数据验证码变量
{time} 模板数据有效时间变量
['yzm' => 'verifyCode'] 说明:'yzm'表示官方模板变量名,'verifyCode' 表示使用程序自带的生成验证码功能

3、用户定义模板说明(重要)

官方模板变量格式多样,如###、#变量名#、@var(变量名)等,本包统一命名格式为:{变量名},变量名和位置应与官方模板变量名和位置保持一致, (*20)

4、基本发送方式

``` php $mobile = '13*********'; //手机号, (*21)


> 使用模板方式发送,无需设置content(如:容联·云通讯、赛邮·云通讯、阿里云短信、腾讯云短信) ``` php $templateVar = ['yzm' => 'verifyCode']; //verifyCode表示使用程序自动生成的验证码 $smsDriver->setTemplateVar($templateVar, true); //替换模板变量,true表示返回键值对数组,false表示返回值数组 $result = $smsDriver->singlesSend($mobile); //发送短信,返回结果

腾讯云短信,默认国家码为86,其它国家和地区的编码必须填写, 国内短信格式:$mobile = '13******' 或 $mobile = ['86', '13*********'], 其它国家和地区短信格式:$mobile = ['82', '016********'], (*22)

``` php $result = $smsDriver->singlesSend($mobile);, (*23)

or, (*24)

$mobile = ['82', '016********']; $result = $smsDriver->singlesSend($mobile);, (*25)


> 使用内容方式发送,无需设置模板id和模板var(如:云片网络、luosimao) ``` php $smsDriver->setContentByVerifyCode(); //假设模板内容为:“{verifyCode}是您请求的验证码”,程序转化为:761888是您请求的验证码 $result = $smsDriver->singlesSend($mobile); Or $smsDriver->setContentByVerifyCode(20); //假设模板内容为:“您的验证码是{verifyCode},有效期为{time}分钟”,程序转化为:您的验证码是761888,有效期为20分钟 $result = $smsDriver->singlesSend($mobile); Or $content = '尊敬的用户,您的域名已到期,请及时续费'; //设置短信内容 $smsDriver->setContent($content); $result = $smsDriver->singlesSend($mobile);

5、组合发送方式

设置签名 ``` php $smsDriver->setSignName('雷神');, (*26)


> 设置内容 ``` php $smsDriver->setContent($content);

替换内容中验证码变量(程序生成验证码方式) ``` php $smsDriver->setContentByVerifyCode();, (*27)


> 替换内容中验证码变量(程序生成验证码方式)及有效时间 ``` php $smsDriver->setContentByVerifyCode(20);

替换内容中自定义变量(array $templateVar) ``` php $smsDriver->setContentByCustomVar($templateVar);, (*28)


> 设置内容并替换内容的变量(array $templateVar) ``` php $content = '{name},您的帐号异地登录,如要不是你本人操作,请及时修改密码'; //设置短信内容 $templateVar = ['name' => 'discovery']; //替换模板内容变量 $smsDriver->setContent($content); $smsDriver->setContentByCustomVar($templateVar); //程序转化为:discovery,您的帐号异地登录,如要不是你本人操作,请及时修改密码

设置模板ID ``` php $smsDriver->setTemplateId(1);, (*29)


> 替换模板变量,返回值数组(array $templateVar) ``` php $smsDriver->setTemplateVar($templateVar); //参考 array(2) { [0]=> string(8) "931101" [1]=> string(4) "10" }

替换模板变量,true表示返回键值对数组(array $templateVar) ``` php $smsDriver->setTemplateVar($templateVar, true);, (*30)

//参考 .array(2) { ["verifyCode"]=> string(6) "859432" ["time"]=> string(2) "15" }, (*31)


> 发送 ``` php $smsDriver->singlesSend($mobile);

返回拼接后的发送数据 ``` php $smsDriver->singlesSend($mobile, false);, (*32)


### 6、更多组合详细请参见单元测试文件:PhpSmsUnitTest.php ### 7、判断短信发送成功还是失败 >return array $result 返回数组结果 >return int $result[].code 返回0则成功,返回其它则错误 >return string $result[].msg 返回消息: "发送成功" Or 短信代理平台提示消息 >return int $result[].verifyCode 返回程序自动生成的验证码,如果不使用程序自带的验证码生成功能,此变量值为NULL, 需自行传递验证码值 ``` php array(3) { ["verifyCode"]=> int(977178) ["code"]=> int(0) ["msg"]=> string(12) "发送成功" } ``` ## Change log Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. ## Testing 拷贝单元测试文件PhpSmsUnitTest.php到根目录tests文件中 ``` bash $ vendor/bin/phpunit tests/PhpSmsUnitTest.php

Security

If you discover any security related issues, please email xzadv@126.com instead of using the issue tracker., (*33)

如果你发现任何相关的问题,请把问题以邮件的形式发送至xzadv@126.com。, (*34)

License

The MIT License (MIT). Please see License File for more information., (*35)

The Versions

18/01 2018

dev-master

9999999-dev https://github.com/phper2013/laravel-sms

Laravel 5 PhpSms Package

  Sources   Download

MIT

The Requires

 

The Development Requires

sms laravel sms laravel-sms phpsms