可能是目前最聪明、优雅的PHP短信发送库了。从此不再为各种原因造成的个别短信发送失败而烦忧!
phpsms的任务均衡调度功能由toplan/task-balancer提供。
GitHub地址:https://github.com/toplan/phpsms
特点
- 支持发送均衡调度,可按代理器权重值均衡选择服务商发送。
- 支持语音验证码。
- 支持一个或多个备用代理器(服务商)。
- 允许推入队列,并自定义队列实现逻辑(与队列系统松散耦合)。
- 短信/语音发送前后钩子。
- 支持国内主流短信服务商。
- 自定义代理器和寄生代理器。
服务商
服务商 | 模板短信 | 内容短信 | 语音验证码 | 最低消费 | 最低消费单价 |
---|---|---|---|---|---|
Luosimao | × | √ | √ | ¥850(1万条) | ¥0.085/条 |
云片网络 | × | √ | √ | ¥55(1千条) | ¥0.055/条 |
容联·云通讯 | √ | × | √ | 充值¥500 | ¥0.055/条 |
SUBMAIL | √ | × | × | ¥100(1千条) | ¥0.100/条 |
云之讯 | √ | × | √ | -- | ¥0.050/条 |
聚合数据 | √ | × | √ | -- | ¥0.035/条 |
阿里大鱼 | √ | × | √ | -- | ¥0.045/条 |
SendCloud | √ | × | √ | -- | ¥0.048/条 |
安装
- composer require 'toplan/phpsms:~1.6.0'
安装开发中版本:
- composer require 'toplan/phpsms:dev-master'
快速上手
1. 配置
- 配置代理器所需参数
为你需要用到的短信服务商(即代理器)配置必要的参数。可以在config\phpsms.php中键为agents的数组中配置,也可以手动在程序中设置,示例如下:
- //example:
- Sms::config([
- 'Luosimao' => [
- //短信API key
- 'apikey' => 'your api key',
- //语音验证API key
- 'voiceApikey' => 'your voice api key',
- ],
- 'YunPian' => [
- //用户唯一标识,必须
- 'apikey' => 'your api key',
- ]
- ]);
- 配置代理器调度方案
可在config\phpsms.php中键为scheme的数组中配置。也可以手动在程序中设置,示例如下:
- //example:
- Sms::scheme([
- //被使用概率为2/3
- 'Luosimao' => '20',
- //被使用概率为1/3,且为备用代理器
- 'YunPian' => '10 backup',
- //仅为备用代理器
- 'YunTongXun' => '0 backup',
- ]);
调度方案解析: 如果按照以上配置,那么系统首次会尝试使用Luosimao或YunPian发送短信,且它们被使用的概率分别为2/3和1/3。 如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPian和YunTongXun,那么会依次调用直到发送成功或无备用代理器可用。 值得注意的是,如果首次尝试的是YunPian,那么备用代理器将会只使用YunTongXun,也就是会排除使用过的代理器。
2. Enjoy it!
- require('path/to/vendor/autoload.php');
- use Toplan\PhpSms\Sms;
- // 接收人手机号
- $to = '1828****349';
- // 短信模版
- $templates = [
- 'YunTongXun' => 'your_temp_id',
- 'SubMail' => 'your_temp_id'
- ];
- // 模版数据
- $tempData = [
- 'code' => '87392',
- 'minutes' => '5'
- ];
- // 短信内容
- $content = '【签名】这是短信内容...';