mucts / sms
A SMS sending component to meet your multiple sending needs.
1.0.9
2020-05-12 08:39 UTC
Requires
- php: ^7.1
- ext-json: *
- ext-simplexml: *
- guzzlehttp/guzzle: ^6.5
- mucts/support: ^1.0
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-11-19 21:37:27 UTC
README
一款满足你的多种发送需求的短信发送组件
特点
- 支持目前市面多家服务商
- 一套写法兼容所有平台
- 简单配置即可灵活增减服务商
- 内置多种服务商轮询策略、支持自定义轮询策略
- 统一的返回值格式,便于日志与监控
- 自动轮询选择可用的服务商
- 更多等你去发现与改进...
平台支持
- 阿里云
- 云片
- Submail
- 螺丝帽
- 容联云通讯
- 互亿无线
- 聚合数据
- SendCloud
- 百度云
- 华信短信平台
- 253云通讯(创蓝)
- 融云
- 天毅无线
- 腾讯云 SMS
- 阿凡达数据
- 华为云
- 网易云信
- 云之讯
- 凯信通
- 七牛云
- UE35.net
- Ucloud
环境需求
- PHP ^7.1
安装
$ composer require mucts/sms
For Laravel notification
如果你喜欢使用 Laravel Notification, 可以考虑直接使用朋友封装的拓展包:
https://github.com/mucts/laravel-sms
使用
use MuCTS\SMS\SMS; $config = [ // HTTP 请求的超时时间(秒) 'timeout' => 5.0, // 默认发送配置 'default' => [ // 网关调用策略,默认:顺序调用 'strategy' => MuCTS\SMS\Strategies\Order::class, // 默认可用的发送网关 'gateways' => [ 'yunpian', 'aliyun', ], ], // 可用的网关配置 'gateways' => [ 'errorlog' => [ 'file' => '/tmp/easy-sms.log', ], 'yunpian' => [ 'api_key' => '824f0ff2f71cab52936axxxxxxxxxx', ], 'aliyun' => [ 'access_key_id' => '', 'access_key_secret' => '', 'sign_name' => '', ], //... ], ]; $sms = new SMS($config); $sms->send(13188888888, [ 'content' => '您的验证码为: 6379', 'template' => 'SMS_001', 'data' => [ 'code' => 6379 ], ]);
短信内容
由于使用多网关发送,所以一条短信要支持多平台发送,每家的发送方式不一样,但是我们抽象定义了以下公用属性:
content
文字内容,使用在像云片类似的以文字内容发送的平台template
模板 ID,使用在以模板ID来发送短信的平台data
模板变量,使用在以模板ID来发送短信的平台
所以,在使用过程中你可以根据所要使用的平台定义发送的内容。
$sms->send(17508598888, [ 'content' => '您的验证码为: 6379', 'template' => 'SMS_001', 'data' => [ 'code' => 6379 ], ]);
你也可以使用闭包来返回对应的值:
$sms->send(17508598888, [ 'content' => function($gateway){ return '您的验证码为: 6379'; }, 'template' => function($gateway){ return 'SMS_001'; }, 'data' => function($gateway){ return [ 'code' => 6379 ]; }, ]);