smkbd/bangla-sms

面向孟加拉国短信服务提供商的 Laravel SMS 通知通道

v1.1.3 2024-05-15 10:13 UTC

This package is auto-updated.

Last update: 2024-09-15 10:50:54 UTC


README

截至 Laravel 10,它仅支持 Vonage 作为 SMS 通知通道。但 smkbd/bangla-sms 包允许您利用孟加拉国的批量短信服务发送 SMS 通知。

此包支持多个孟加拉国 SMS 服务提供商/网关(见下文)。

版本支持

安装

以下命令将添加包的最新版本到您的 Laravel 项目中。

composer require smkbd/bangla-sms

配置

1. 发布配置文件

php artisan vendor:publish --tag=bangla-sms

它将在项目的 /config 目录中发布 bangla-sms.php

2. 配置短信服务提供商密钥和 API 令牌

您需要在发布的 /config/bangla-sms.php 配置文件中设置所有必要的密钥和 API 令牌。

'smsq' => [
    'client_id' => 'SET_CLIENT_ID_HERE',
    'api_key' => 'SET_API_KEY_HERE',
    'sender_id' => 'SET_SENDER_ID_HERE',
    ...
]

3. 路由短信通知

要启用可通知的(例如用户)接收短信通知,您需要通过定义一个 routeNotificationForBanglaSms 方法来告诉包短信将被发送到哪里。例如,如果您的用户电话号码存储在数据库的 phone_number 列中,您可以这样做-

class User extends Authenticatable
{
    use Notifiable;

    ...

    public function routeNotificationForBanglaSms()
    {
        return $this->phone_number;
    }
}

4. 配置 Laravel 通知类

按照以下方式配置您的通知类-

use Smkbd\BanglaSms\BanglaSmsChannel;

class ProductPurchased extends Notification
{

    ...

    public function via(object $notifiable): array
    {
        return [BanglaSmsChannel::class];
    }

    public function toBanglaSms(object $notifiable)
    {
        return "SMS content goes here";
    }

    ...
}

您还可以像通常一样使用队列机制。

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;

class ProductPurchased extends Notification implements ShouldQueue
{
    use Queueable;
    
    ...
    
}

不使用通知类发送 SMS

您可以直接(即不启动任何通知类)使用以下方式通过 Smkbd\BanglaSms\Sender 类发送 SMS-

use Smkbd\BanglaSms\Sender;

...

$sender = new Sender("My message", ["01712345678", "01987654321"]);
$sender->send();

您也可以指定一个 SMS 提供商,如下所示-

use Smkbd\BanglaSms\Sender;
use Smkbd\BanglaSms\Provider\Smsq;
...

$provider = new Smsq();
$sender = new Sender("My message", ["01712345678", "01987654321"], $provider);
$sender->send();

可用的 SMS 提供商

我没有所需的信息。我从哪里获得它?

如果您已注册 SMS 网关服务提供商,您可以向他们询问 API 令牌/ID。他们将能够帮助您。