tookantech / chapaar
此包提供了一种灵活的方式,通过各种短信服务提供商发送和验证消息。它提供了与多个驱动程序的集成,使得使用不同的短信服务提供商变得容易,而不必局限于特定的一个。
1.8.0
2024-04-08 11:09 UTC
Requires
- php: ^8.2|^8.1
- guzzlehttp/guzzle: ^7.5
- illuminate/contracts: ^11.0|^10.0
- laravel/framework: ^7.0|^8.0|^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9 | ^8.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^5.0|^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^1.22|^2.34
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpdoc-parser: ^1.15
- phpstan/phpstan: ^1.4.7
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
Chapaar 通过多个短信服务提供商提供灵活的消息发送和验证,易于集成,不锁定任何特定提供商。
可用驱动程序
- kavenegar.com(已测试)
- sms.ir(已测试)
- ghasedak.me(已测试)
- Farapayamk(未测试)
- Twillo(即将推出)
安装
您可以通过 Composer 安装此包
composer require tookantech/chapaar
配置
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="chapaar-config"
这将在您的配置目录中创建一个 chapaar.php 配置文件,您可以在其中设置默认驱动程序并配置特定于驱动程序的设置。
这是已发布配置文件的内容
return [ 'default' => env('CHAPAAR_DRIVER', 'kavenegar'), 'drivers' => [ 'kavenegar' => [ 'url' => 'https://api.kavenegar.com/v1/', 'api_key' => '', 'line_number' => '' ], 'smsir' => [ 'url' => 'https://api.sms.ir/v1/', 'api_key' => '', 'line_number' => '', ], 'ghasedak' => [ 'url' => 'https://api.ghasedak.me/v2/', 'api_key' => '', 'line_number' => '', ], ], ];
用法
使用 Chapaar Facade
如果您想在没有 Laravel 内置通知系统的情况下使用 Chapaar 包,可以直接使用 Chapaar Facade。这允许您使用不同的短信服务提供商发送和验证消息。
发送简单消息
use TookanTech\Chapaar\Facades\Chapaar; use TookanTech\Chapaar\SmsMessage; $message = (new SmsMessage())->driver() ->setFrom('12345678') ->setTo('0912111111') ->setContent('Hello, this is a test message.'); $response = Chapaar::send($message);
使用模板消息发送
use TookanTech\Chapaar\Facades\Chapaar; use TookanTech\Chapaar\SmsMessage; #Kavenegar $message =(new SmsMessage()) ->driver() ->setTemplate("invoice-paid") ->setTo('09121111111') ->setTokens([ '123', // token '456', // token2 '789', // token3 '111', // token10, with 4 space '222', // token20, with 8 space ]); # SmsIr $message =(new SmsMessage()) ->driver() ->setTemplate('invoice-paid') ->setTo('09121111111') ->setTokens([ 'code' => '123' // 'variable_name' => 'value' ]); # Ghasedak $message =(new SmsMessage()) ->driver() ->setTemplate("invoice-paid") ->setTo('09121111111') ->setTokens([ 'test1', // param1 'test2' // param2 ]); $response = Chapaar::verify($message);
不使用默认驱动程序发送
use TookanTech\Chapaar\Facades\Chapaar; use TookanTech\Chapaar\SmsMessage; use TookanTech\Chapaar\Enums\Drivers; $message = (new SmsMessage()) ->driver(Drivers::SMSIR) ->setFrom('12345678') ->setTo('0912111111') ->setContent('Hello, this is a test message.'); $response = Chapaar::send($message);
获取最新的出站消息,它将自动获取默认驱动程序的最新发送消息
$response = Chapaar::outbox(100);
在通知中使用
请参阅 laravel notifications 了解如何在 Laravel 中使用通知。
use TookanTech\Chapaar\SmsChannel; class InvoicePaid extends KavenegarBaseNotification { public function via($notifiable): array { return [SmsChannel::class]; } public function toSms($notifiable) { return (new SmsMessage)->driver() ->setTemplate('verify') ->setTokens([123],[456]) } } class User extends Authenticatable { use Notifiable; public function routeNotificationForSms($driver, $notification = null) { return $this->mobile; } }
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。