larva/laravel-sms

This is a SMS.

1.0.7 2023-03-10 07:17 UTC

This package is auto-updated.

Last update: 2024-03-30 15:14:46 UTC


README

This is a sms expansion for the laravel

License Latest Stable Version Total Downloads

特点

  1. 支持目前市面多家服务商
  2. 一套写法兼容所有平台
  3. 简单配置即可灵活增减服务商
  4. 内置多种服务商轮询策略、支持自定义轮询策略
  5. 统一的返回值格式,便于日志与监控
  6. 自动轮询选择可用的服务商
  7. 更多等你去发现与改进...

平台支持

环境需求

  • PHP >= 7.2

Installation

composer require larva/laravel-sms

for Laravel

This service provider must be registered.

// config/app.php

'providers' => [
    '...',
    Larva\Sms\SmsServiceProvider::class,
];

add the config file: config/sms.php

add config

use Overtrue\EasySms\Strategies\OrderStrategy;

return [
    // HTTP 请求的超时时间(秒)
    'timeout' => 5.0,

    /*
    |--------------------------------------------------------------------------
    | Default Setting
    |--------------------------------------------------------------------------
    |
    | This option defines the default sms gateway that gets used when writing
    | messages to the sms. The name specified in this option should match
    | one of the gateways defined in the "gateways" configuration array.
    |
    */
    'default' => [
        // 网关调用策略,默认:顺序调用
        'strategy' => OrderStrategy::class,

        /*
        |--------------------------------------------------------------------------
        | Default Gateways
        |--------------------------------------------------------------------------
        |
        | This option defines the default sms gateway that gets used when writing
        | messages to the sms. The name specified in this option should match
        | one of the gateways defined in the "gateways" configuration array.
        |
        */
        'gateways' => [

        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Log Gateways
    |--------------------------------------------------------------------------
    |
    | Here you may configure the sms gateways for your application.  This gives
    | you a variety of powerful log handlers / formatters to utilize.
    |
    | Available Drivers: "aliyun", "alidayu", "yunpian", "submail",
    |                    "errorlog", "luosimao", "yuntongxun", "huyi"
    |                    "juhe", "sendcloud", "baidu", "huaxin", "chuanglan"
    |                    "rongcloud", "tianyiwuxian", "twilio", "qcloud", "avatardata"
    |
    */
    'gateways' => [
        //Doc
        // https://github.com/overtrue/easy-sms
    ],
];

Use

try {
    $res = sms('13800138000', ['content'  => '您的验证码为: 6379','template' => '259734', 'data' => [6379]]);
    print_r($res);
} catch (InvalidArgumentException $e) {
    print_r($e->getMessage());
} catch (NoGatewayAvailableException $e) {
    print_r($e->getMessage());
}

//如果要在 系统内使用短信通知通道 在User 模型增加

    /**
     * 获取手机号
     * @param \Illuminate\Notifications\Notification|null $notification
     * @return int
     */
    public function routeNotificationForPhone($notification)
    {
        return $this->phone;
    }

获取手机号,通知实体类的通知渠道写 phone