mrgear/laravel-smsir
sms.ir 版本 2 的 Laravel 包
Requires (Dev)
- orchestra/testbench: ^7.0
This package is auto-updated.
Last update: 2024-09-30 01:46:44 UTC
README
sms.ir v2 发送短信的 Laravel 包
此包用于通过 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');