TP5 封装多业务的发送短信功能(包括国际短信)

1、准备工作

1.1、准备依赖包

1、短信方面 我这里用到 packagist 里面的 overtrue/easy-sms
image

下载依赖包之前记得要看下依赖的PHP版本、短信平台等。

我们可以看到这个依赖包提供的平台有以下:
image.png

2、Redis方面 我用到了Predis的包
image

另外他包里面提供了使用方法和类型,需要去看下,不过本人进行了代码封装。
安装这些包的话直接打开cmd命令行输入 composer require XXX 即可,
XXX是对应包名,XXX后面如果加 **:1.***就相当于版本号,包里面会介绍相关的操作。
##2、代码封装
#####2.1、封装的文件

  • 包括两个 服务类config.php ,用于封装不同业务类型的存储和发送的方法,如下图

image

2.2、配置文件
  • config.php 文件,用于保存短信配置和白名单等,内容如下
//通用发送短信配置(短信消息配置)
'easy_sms' => [
    // HTTP 请求的超时时间(秒)
    'timeout' => 5.0,

    // 默认发送配置
    'default' => [
        // 网关调用策略,默认:顺序调用
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

        // 默认可用的发送网关
        'gateways' => [
            'yunpian',
        ],
    ],

    // 可用的网关配置
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        //云片
        'yunpian' => [
            'api_key' => '',
        ],
        //阿里云
        'aliyun' => [
            'access_key_id' => '',
            'access_key_secret' => '',
            'sign_name' => 'aa',
        ],
        //...
    ],
],

//发送消息限制配置
'sms_limit' => [
    'white_list' => [ //发送短信白名单
        '13512341234',
        '18664337604',
        '13450681681',
    ],
    'save_time' => 3600, //设置保存时间 默认一小时
    'send_total' => 5, //限制时间内最多发送5条
    'expires' => 900, //设置验证码过期时间 默认15分钟
],

//Redis配置
'redis_host' => Env::get('redis.hostname','192.168.2.168'),
'redis_password' => Env::get('redis.password',''),
'redis_port' => Env::get('redis.hostport','6379'),
'redis_prefix' => Env::get('redis.prefix','su::'),

其中 Env 是对应的配置文件,你也可以直接在第二个参数填写默认的配置即可。

2.3、Redis服务类
<?php

namespace app\common\service;

use Predis\Client;

class RedisService
{
    //Redis保存的key
    //短信部分
    const SU_SMS_LOGIN = 'sms::login::'; //短信验证码|登录和找回密码(后面跟 国际区号-用户手机号)
    const SU_SMS_RESET_PWD = 'sms::reset::pwd::'; //短信验证码|重置账号密码(后面跟 国际区号-用户手机号)
    const SU_SMS_RESET_MOBILE = 'sms::reset::mobile::'; //短信验证码|重置手机号码(后面跟 国际区号-用户手机号)
    const SU_SMS_CREATE_ACCOUNT_MOBILE 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值