macellan/netgsm
Laravel的Netgsm短信通知通道
v1.1.0
2024-03-12 19:15 UTC
Requires
- php: ^8.1
- ext-json: *
- ext-simplexml: *
- guzzlehttp/guzzle: ^7.0
- illuminate/http: ^8.0|^9.0|^10.0|^11.0
- illuminate/notifications: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- illuminate/translation: ^8.0|^9.0|^10.0|^11.0
- spatie/array-to-xml: ^3.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.0
README
此包使得使用Laravel 8.x, 9.x, 10.x, 11.x通过Netgsm发送短信通知变得容易
内容
安装
您可以通过composer安装此包
composer require macellan/netgsm
设置Netgsm服务
将您的Netgsm配置添加到config/services.php
// config/services.php ... 'sms' => [ 'netgsm' => [ 'username' => env('NETGSM_USERNAME', ''), 'password' => env('NETGSM_PASSWORD', ''), 'header' => env('NETGSM_HEADER', ''), 'language' => env('NETGSM_LANGUAGE', 'tr'), 'enable' => env('NETGSM_ENABLE', false), 'debug' => env('NETGSM_DEBUG', false), // Will log sending attempts and results 'sandbox_mode' => env('NETGSM_SANDBOX_MODE', false), // Will not invoke API call ], ], ...
使用
您可以在通知内的via()方法中使用该通道
use Illuminate\Notifications\Notification; use Macellan\Netgsm\DTO\Sms\BaseSmsMessage; use Macellan\Netgsm\DTO\Sms\SmsMessage; class TestNotification extends Notification { public function via($notifiable) { return ['netgsm']; } public function toNetgsm(object $notifiable): BaseSmsMessage { return new SmsMessage('Netgsm test message'); } }
对于Otp短信发送,可以返回OtpSmsMessage类。
return new OtpSmsMessage('Netgsm otp test message');
在您的可通知模型中,请确保包含一个routeNotificationForSms()方法,该方法返回一个电话号码。
public function routeNotificationForSms() { return $this->phone; }
按需通知
有时您可能需要向未作为您的应用程序“用户”存储的人发送通知。使用Notification::route方法,您可以在发送通知之前指定临时的通知路由信息
Notification::route('sms', '+905554443322') ->notify(new TestNotification());
使用外观
use Macellan\Netgsm\Facades\Netgsm; use Macellan\Netgsm\DTO\Sms\SmsMessage; use Macellan\Netgsm\DTO\Sms\OtpSmsMessage; // Sms send $smsMessage = (new SmsMessage('Netgsm test message')) ->setNumbers(['+905554443322']); Netgsm::sendSms($smsMessage); /** // return array [ 'code' => '00', // Netgsm response code 'id' => '111111', // Bulk Id ] **/ // Otp Sms send $otpSmsMessage = (new OtpSmsMessage('Netgsm otp test message')) ->setNumbers(['+905554443322']); Netgsm::sendSms($otpSmsMessage); /** // return array [ 'code' => '00', // Netgsm response code 'id' => '111111', // Job id 'error' => '', // Error message ] **/
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG