xenon/laravelbdsms

这是一个用于通过 Laravel 应用程序向孟加拉国手机号码发送短信的包

V1.0.63.0 2024-09-18 12:35 UTC

README

Xenon\LaravelBDSms 是一个用于通过多个网关将短信发送到孟加拉国手机号码的 Laravel 框架短信网关包。您可以在 YouTube 上查看安装过程

安装

步骤 1

composer require xenon/laravelbdsms

步骤 2

使用命令发布包

php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="migrations"
php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="config"
php artisan migrate

步骤 3

从控制台选择供应商

步骤 4

php artisan config:cache && php artisan migrate

使用方法

简单使用外观

注意:要使用外观发送消息,您必须设置 .env 凭据并设置默认提供者;从 config/sms.php 内部查找不同提供者的 .env 凭据)

use Xenon\LaravelBDSms\Facades\SMS;

SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');
SMS::shoot(['017XXYYZZAA','018XXYYZZAA'], 'helloooooooo boss!'); 

或者,使用外观别名

use LaravelBDSms, SMS;

LaravelBDSms::shoot('017XXYYZZAA', 'helloooooooo boss!');
SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');

或者,如果您需要动态更改默认提供者

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

$response = SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');

或者,您可以使用队列发送消息。这个队列将被添加到您的作业表中。作业运行时,将发送消息。

确保您已启用 jobs 表和其他相关作业功能

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

SMS::shootWithQueue("01XXXXXXXXX",'test sms');
SMS::via(Ssl::class)->shootWithQueue("01XXXXXXXXX",'test sms');

日志生成

您可以为每个短信 API 请求生成日志并将其保存到数据库或文件中。为此,请遵循以下要点

  1. Laravelbdsms 将日志存储在两个驱动程序中(database, file)。默认为 database。您可以从 config/sms.php 中更改它
  2. 查找并使 'sms_log' => true, 为真
  3. 确认您已完成 步骤-2步骤-3
  4. 对于 database 驱动程序
    1. 将日志驱动程序更改为 log_driver =>'database'config/sms.php
    2. 运行命令 php artisan migrate。这将创建数据库中的 lbs_log
  5. 对于 file 驱动程序
    1. 将日志驱动程序更改为 log_driver =>'file'config/sms.php

否则,如果您想有更多控制权,您可以使用底层的发送者对象。这将不会触及任何 Laravel 外观或服务提供者。

示例代码

SSLCommerz

use Xenon\LaravelBDSms\Provider\Ssl;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(Ssl::class); //change this provider class according to need
$sender->setMobile('017XXYYZZAA');
//$sender->setMobile(['017XXYYZZAA','018XXYYZZAA']);
$sender->setMessage('helloooooooo boss!');
$sender->setQueue(true); //if you want to sent sms from queue
$sender->setConfig(
   [
       'api_token' => 'api token goes here',
       'sid' => 'text',
       'csms_id' => 'sender_id'
   ]
);
$status = $sender->send();

----------Demo Response Using SSL-------------
array:6 [▼
  "status" => "response"
  "response" => "{"status":"FAILED","status_code":4003,"error_message":"IP Blacklisted"}"
  "provider" => "Xenon\LaravelBDSms\Provider\Ssl"
  "send_time" => "2021-07-06 08:03:23"
  "mobile" => "017XXYYZZAA"
  "message" => "helloooooooo boss!"
]
--------------------------------------------------

使用自定义网关发送短信

我们已尽可能地将孟加拉国的所有网关添加到本包中。但是,如果您在此列表中找不到您期望的网关,则可以使用以下代码片段使用自定义网关。

use Xenon\LaravelBDSms\Provider\CustomGateway;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(CustomGateway::class);
$sender->setUrl('https://your_cusom_gateway_provider_url_here')
        ->setMethod('post')
        ->setHeaders([
            'Content-Type: application/json',
            'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        ], false);
$sender->setMobile('017XXYYZZAA');
$sender->setMessage('text message goes here');
$sender->setQueue(false);
//use required parameters based on your sms gateway. This will be changed according to need
$sender->setConfig(
    [
        'MsgType' => 'TEXT',
        'masking' => 'sample',
        'userName' => 'test_user',
        'message' => 'test message',
        'receiver' => '017xxxxxxxxxx',
    ]
);
echo $status = $sender->send();

当前支持的短信网关

星级关注者

Stargazers repo roster for @arif98741/laravelbdsms

分支者

Forkers repo roster for @arif98741/laravelbdsms

贡献者


我们正在持续为此开源库添加更多孟加拉国短信网关。如果您觉得缺少某些东西,请就此事创建一个问题。如果您想为此库做出贡献,那么您将非常欢迎这样做……

为了清晰的文档,请阅读 Medium 上的这篇文章,并且您还可以从此链接下载多个短信提供商的文档作为 PDF。

特别感谢
tusharkhan
tusher9352