webguosai/hyperf-sms

hyperf短信扩展包

dev-main 2025-04-16 10:59 UTC

This package is auto-updated.

Last update: 2025-04-16 10:58:33 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

运行环境

  • php >= 8.1
  • composer
  • hyperf >= 3.1

安装

composer require webguosai/hyperf-sms -vvv

配置

发布配置

php bin/hyperf.php vendor:publish webguosai/hyperf-sms

配置文件

return [
    // 默认驱动
    'default' => 'qiniu',
    'driver'  => [
        'qiniu'      => [
            // 驱动名称
            'name'   => '七牛云短信',
            'driver' => \Webguosai\HyperfSms\Driver\Qiniu::class,
            // 驱动初始化参数
            'config' => [
                'access_key' => '',
                'secret_key' => '',
            ]
        ],
        'smschinese' => [
            'name'   => '中国网建',
            'driver' => \Webguosai\HyperfSms\Driver\Smschinese::class,
            'config' => [
                'uid' => '',
                'key' => '',
            ]
        ],
        'aliyun'     => [
            'name'   => '阿里云短信',
            'driver' => \Webguosai\HyperfSms\Driver\Aliyun::class,
            'config' => [
                'accessKeyId'     => '',
                'accessKeySecret' => '',
                'regionId'        => '',
                'signName'        => '',
            ]
        ],
    ]
];

使用

发送短信

  • 写法一
use function Webguosai\HyperfSms\sms;

sms()->send('18888888888', [
    'template' => 'xxx',
    'content' => '您的验证码是1234,该验证码1分钟内有效,请勿泄漏于他人!',
    'data' => [
        'code' => '1234'
    ]
]);
  • 写法二
use Webguosai\HyperfSms\Contract\SmsInterface;

$sms = di(SmsInterface::class);
$sms->send('18888888888', [
    'template' => 'xxx',
    'content' => '您的验证码是1234,该验证码1分钟内有效,请勿泄漏于他人!',
    'data' => [
        'code' => '1234'
    ]
]);

获取信息

use function Webguosai\HyperfSms\sms;

sms()->getName();

sms()->getDriver();

自定义驱动

$sms = \Webguosai\HyperfSms\Facade\Sms::driver('qiniu');
// 或 
// $sms = \Webguosai\HyperfSms\Facade\Sms::make('qiniu');

$sms->send('18888888888', [
    'template' => 'xxx',
    'content' => '您的验证码是1234,该验证码1分钟内有效,请勿泄漏于他人!',
    'data' => [
        'code' => '1234'
    ]
]);

闭包发送

use function Webguosai\HyperfSms\sms;

sms()->send('18888888888', [
    'content'  => function($driver){
        if ($driver == 'aliyun') {
            return '云片专用验证码:1235';
        }
        return '您的验证码为: 6379';
    },
    'template' => function($driver){
        if ($driver == 'aliyun') {
            return '1888883905033940992';
        }
        return 'SMS_001';
    },
    'data' => function($driver){
        return [
            'code' => 6379
        ];
    }
]);

License

MIT