phpcode/tp51-sms

no Description is good Description!

v1.0.8 2022-05-15 10:36 UTC

This package is auto-updated.

Last update: 2024-05-15 15:19:28 UTC


README

thinkphp5.1 聚合短信类

安装

composer require phpcode/tp51-sms

配置

  • 复制examples/config/sms.php到项目config配置目录下(config/sms.php
  • 修改.env文件(可参考文件examples/.env.examplesms.php
  • 在对应的数据库上执行sms_table.sql文件的创建表语句,记得把{$prefix}替换为实际的databases.phpprefix对应的值
  • 如果不想把短信模板配置到数据库,可以直接在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 支持[ dysmsqcloudsmslocalclsmshtsms ]
  • 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_cachetrue时,需要手动调用clearTemplatesCache()方法清除短信模板,否则不生效

V1.0.4 更新日志

  • 新增短信类型虹腾(htsms)
  • 修改创蓝短信为变量模板而非数字作为key的用法
  • 修复examples/config/sms.php内容

V1.0.5 更新日志

  • 修复虹腾短信 返回参数