bakhritdinov/sms_manager

支持自动切换网关的 SMS 管理器

dev-master 2020-01-23 11:22 UTC

This package is auto-updated.

Last update: 2024-09-23 21:15:38 UTC


README

该包提供了一种实现您自己的 SMS 网关的方式,您可以按照自己的需求来。

安装

composer require bakhritdinov/sms-manager

Laravel

将 "Bakhritdinov\SMSManager\Support\LaravelServiceProvider" 注册到 config/app.php 配置文件中

'providers' => [
    // Other service providers...

    Bakhritdinov\SMSManager\Support\LaravelServiceProvider::class,
],

将 SMSManager 门面添加到配置文件的别名数组中

'SMSManager' => Bakhritdinov\SMSManager\Support\Facades\SMSManager::class,

生成 config/sms_manager.php

php artisan vendor:publish

Lumen

或 bootstrap/app.php

$app->register(Bakhritdinov\SMSManager\Support\LumenServiceProvider::class);

要求

PHP 7.1.3 或更高版本

Laravel 或 Lumen 5.7 或更高版本

Composer

功能

  • 根据优先级自动切换 SMS 网关
  • 有机会控制 SMS 网关的优先级
  • 立即发送 SMS 通知
  • 通过队列在后台发送 SMS 通知
  • 无限制实现自己的 SMS 网关
  • 重试保护

还缺少什么?

  • 机会批量发送
  • 用于 SMS 网关优先级管理的控制器

随着时间的推移,我会修复所有的缺陷,如果您发现任何缺陷,请向我报告。

使用

SmsManager::getBuilder()
        ->toNumber(998974614334)
        ->withMessage('Hello! From default gateway')
        ->sendImmediately();

第一种情况使用最高优先级的 SMS 网关向指定号码发送 SMS 通知。

sendImmediately 方法发送消息而不使用队列,等待来自 SMS 中心的通知。

SmsManager::getBuilder()
        ->toNumber(998974614334)
        ->withMessage('Hello! From first gateway')
        ->withGateway('first_gateway')
        ->sendImmediately();

第二种情况在定义所需的 SMS 网关的同时向指定号码发送 SMS 通知,但等待来自 SMS 中心的通知。

SmsManager::getBuilder()
        ->toNumber(998974614334)
        ->withMessage('Hello! From queue')
        ->addToQueue();

第三种情况为向指定号码发送消息创建队列,同时使用最高优先级的 SMS 网关。

这非常有用。例如,在注册时,客户不必等待来自 SMS 中心的通知。

许可证

MIT