mrgear/laravel-smsir

sms.ir 版本 2 的 Laravel 包

1.0.0 2023-09-30 10:09 UTC

This package is auto-updated.

Last update: 2024-09-30 01:46:44 UTC


README

sms.ir v2 发送短信的 Laravel 包

License

此包用于通过 sms.ir API 版本 2 发送短信。

内容列表

安装

composer require mrgear/laravel-smsir

smsir.php, .env

为了设置手机号码、基本 URL (base_url) 和默认模板 ID,请在 .env 文件中使用以下键

SMSIR_BASE_URL=https://api.sms.ir/v1/send/
SMSIR_API_KEY=Your api key
SMSIR_LINE_NUMBER=Your pannel line number
SMSIR_TEMPLATE_ID=Default template id
配置文件 smsir.php 包含从 .env 文件接收的 API 密钥、手机号码、基本 URL (base_url) 和默认模板 ID。

使用以下命令更改配置文件,以将 Config/smsir.php 文件放入 Laravel 设置目录:

php artisan vendor:publish --provider=MRGear\SMSIR\Providers\SMSIRServiceProvider --tag=config

使用方法

我们可以使用 SMSIR 类来完成短信发送过程。

方法

$smsir_instance = new \MRGear\SMSIR\SMSIR();

//تعیین شماره تلفن همراه بصورت تکی (برای استفاده در اسلا تکی و وریفای)
$smsir_instance->phoneNumber('09xx');

//تعیین شماره تلفن همراه بصورت گروهی (برای استفاده در ارسال نظیر به نظیر و گروهی)
$smsir_instance->phoneNumbers(['09xx' , '09xx']);

//تعیین پیام مورد نظر برای ارسال (برای در ارسال گروهی و تکی)
$smsir_instance->message(['09xx1' , '09xx2' , '09xx3']);

//تعیین پیام بصورت گروهی (برای استفاده در ارسال نظیر به نظیر)
$smsir_instance->messages(['message 1' , 'message 2' , 'message 3']);

//تعیین شناسه قالب بصورت دستی (برای استفاده در ارسال وریفای) 
$smsir_instance->templateId('123xx');
//تعیین پارامترهای ارسال وریفای بصورت دستی (برای استفاده در ارسال وریفای) 
$smsir_instance->parameters(['name' => 'VERIFICATION_CODE' , 'value' => '12345']);
// یا
$smsir_instance->parameters(['parameter_mame' , 'parameter_value']);
// یا
$smsir_instance->parameters([ 'parameter_value' , 'parameter_mame']);

// آماده سازی برای ارسال تکی
$smsir_instance->single();

// آماده سازی برای ارسال گروهی
$smsir_instance->multiple();

// آماده سازی برای ارسال نظیر به نظیر
$smsir_instance->p2p();

// آماده سازی برای ارسال وریفای
$smsir_instance->fast();

//ارسال
$smsir_instance->send();

一些例子

为了发送短信,需要指定所需参数和目标方法。

在 sms.ir 控制台中定义了三种批量发送方法:单个发送、验证和一对一发送。下面是每个方法的示例。

单个发送方法

$smsir_instance = new \MRGear\SMSIR\SMSIR();
$smsir_instance->message('پیام مورد نظر')->phoneNumber('09xx')->single()->send();
//یا
$smsir_instance->phoneNumber('09xx');
$smsir_instance->message('پیام مورد نظر');
$smsir_instance->single()->send();

批量发送方法

$smsir_instance = new \MRGear\SMSIR\SMSIR();
$smsir_instance->message('پیام مورد نظر')->phoneNumbers(['0912xxx' , '0935xxx'])->multiple()->send();
//یا
$smsir_instance->phoneNumbers(['0912xxx' , '0935xxx']);
$smsir_instance->message('پیام مورد نظر');
$smsir_instance->multiple()->send();

一对一发送方法

$smsir_instance = new \MRGear\SMSIR\SMSIR();
$smsir_instance->phoneNumbers(['0912xxx' , '0935xxx'])->message(['message 1' , 'message 2'])->p2p()->send();
//یا
$smsir_instance->message(['message 1' , 'message 2']);
$smsir_instance->phoneNumbers(['0912xxx' , '0935xxx']);
$smsir_instance->p2p()->send();

验证发送方法

$smsir_instance = new \MRGear\SMSIR\SMSIR();
$smsir_instance->parameters(['12454' , 'VERIFICATION_CODE'])->fast()->send();
//تعیین قالب بصورت دستی

$smsir_instance->templateId('123xx')->parameters(['VERIFICATION_CODE' , '12345'])->fast()->send();

通知

SMSIRNotification 类利用 Laravel 通知系统。

对于使用 Notifiable 特性的类,应通过 smsir_phone_number$ 变量设置电话号码字段。

例如,如果我们考虑具有 phone_number 字段的 User 模型,变量如下所示

namespace App\Models;

use Illuminate\Notifications\Notifiable;

class User  
{
    use Notifiable;
    
    public $smsir_phone_number = 'phone_number';
}
通知类仅用于使用两种发送状态:单个发送和快速发送(验证方法)。

如果类输入为字符串,则通知系统将发送视为单个发送,并将输入作为消息发送

可以以数组形式将验证发送参数传递给类。

注意:可以通过在输入数组中设置 'template_id' 键来手动选择模板 ID。

示例
//ارسال تکی
$notification = new \MRGear\SMSIR\Notifications\SMSIRNotification('پیام مورد نظر');

//ارسال سریع ( وریفای )
$notification = new \MRGear\SMSIR\Notifications\SMSIRNotification(['VERIFICATION_CODE' , '12345']);

//ارسال سریع (وریفای) با تعیین شناسه قالب
$notification = new \MRGear\SMSIR\Notifications\SMSIRNotification(['VERIFICATION_CODE' , '12345' , 'template_id' => '12xx']);

$user = \App\Models\User::first();
$user->notify($notification);

门面和辅助函数

为了使用 Laravel Facade 功能以静态方式访问,可以使用 MRGear\SMSIR\Facade\SMSIR\ 类。

已创建 smsir 辅助函数以供使用

smsir($message , $phone_number, $data = null , $template_id = null);
发送单个

只需以字符串形式发送第一个和第二个变量

smsir('message text' , '09xx');
发送批量

在这种情况下,将 message$ 变量以字符串形式发送,将 phone_number$ 变量以电话号码数组的形式发送

smsir(smsir('message text' , ['09xx' , '09xx' , '09xx']);
发送一对一

在这种情况下,将 message$ 变量以消息数组的形式发送,将 phone_number$ 变量以电话号码数组的形式发送

smsir(['message text1' , 'message text2' , 'message text3' ] , ['09xx' , '09xx' , '09xx' ]);
发送验证(快速)

在这种情况下,只需将第一个变量替换为 "verify"(大小写均可)、"v"(小写或大写)、"fast"(大小写均可)或 true

在这种情况下,将所需参数替换为第三个变量,如有必要,手动使用第四个变量发送模板 ID

smsir(true , '09x', ['VERIFICATION_CODE' , '123456']);
smsir('V' , '09x', ['VERIFICATION_CODE' , '123456'] , '12xx');
smsir('Verify' , '09x', ['123456' , 'VERIFICATION_CODE'] );
smsir('fast' , '09x', ['12456' , 'VERIFICATION_CODE'] , '12xxx');