phpcode / tp51-sms
no Description is good Description!
Installs: 171
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/phpcode/tp51-sms
Requires
- qcloudsms/qcloudsms_php: 0.1.*
README
thinkphp5.1 聚合短信类
安装
composer require phpcode/tp51-sms
配置
- 复制
examples/config/sms.php到项目config配置目录下(config/sms.php) - 修改
.env文件(可参考文件examples/.env.example和sms.php) - 在对应的数据库上执行
sms_table.sql文件的创建表语句,记得把{$prefix}替换为实际的databases.php的prefix对应的值 - 如果不想把短信模板配置到数据库,可以直接在
sms.php配置文件中配置sms_template_list
使用
Controller 控制器中使用
use tp51\sms\Sms;
$sms = new Sms();
$type = 'register'; //短息模板类型标识 如 register | find_password
$mobile = '13800138000'; //手机号
//系统内置了获取验证码方法,可以配置 验证码的长度,有效期,有效时间内获取的同一个手机号的同一类型的验证码是否一样
$code = $sms->getVerifyCode($type, $mobile);
//发送短信
$out_id = $sms->send($type, $mobile, ['code'=>$code]);
------------------------------------------------------------------------------------------
//验证
$input_code = input('param.code'); //用户输入的验证码
$res = $sms->checkVerifyCode($type, $mobile, $input_code);
if($res){
//验证成功了
//这里可以写具体的业务逻辑
echo 'success';
} else {
//验证失败了
echo 'error';
}
支持
- 阿里云的阿里大鱼
dysms - 腾讯云的
qcloudsms - 本地发送
local(不真实发送短信,配合万能验证码在开发环境调试) - 创蓝短信
clsms - 虹腾短信
htsms
重要选项
sms_type支持[dysms、qcloudsms、local、clsms、htsms]sms_type设置为local时,配合public_verify_code可以配置万能验证码以节约短信费用- 短信模板除了
腾讯云(qcloudsms)的需要{1},{2}这种格式外,其它的都是${code},${name}的形式,因此为了更好的兼容各种短信,建议程序使用可以key的参数['code'=>$code, 'name'=>$name]而不是[$code, $name]
功能
- 灵活的配置(可以参考
Sms.php的配置项$_config) - 支持自定义验证码长度(
verify_code_length)或->setVerifyCodeLength() - 支持配置有效时间内获取同种类型的验证码是否变化(
same_as_last_time) - 支持自定义允许尝试验证码最大次数(
max_try)或->setMaxTry() - 支持验证成功后是否立即销毁验证码(
delete)或->setDelete() - 支持设置发送短信成功后的回调
->setSendCallBack() - 支持非数据库设置短信模板(优先级高于数据库配置短信模板)
->setSmsTemplateList()
注意事项
- 生产环境如果把
短信模板配置到数据库建议把use_cache设置为true以提高性能 - 如果更改了短信模板的并且使用缓存
use_cache为true时,需要手动调用clearTemplatesCache()方法清除短信模板,否则不生效
V1.0.4 更新日志
- 新增短信类型
虹腾(htsms) - 修改
创蓝短信为变量模板而非数字作为key的用法 - 修复
examples/config/sms.php内容
V1.0.5 更新日志
- 修复虹腾短信 返回参数