shabayek / laravel-sms
Laravel SMS 发送包
v1.3.5
2022-08-16 14:00 UTC
Requires
- php: ^7.3|^7.4|^8.0
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- mockery/mockery: dev-master
- nunomaduro/collision: ^5.10
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
README
这是一个用于短信网关集成的 Laravel 包。现在发送短信变得简单。
支持的网关列表
安装
通过 Composer
composer require shabayek/laravel-sms
使用方法
- 发布配置文件
php artisan vendor:publish --provider="Shabayek\Sms\SmsServiceProvider"
- 选择您希望为您的应用程序使用的网关。然后将其设置为默认驱动,这样您就不必在每处都指定它。但是,您也可以在一个项目中使用多个网关。
'default' => 'smseg',
- 然后在驱动数组中填写该网关的凭证。
SMS_CONNECTION=smseg SMS_USERNAME=username SMS_PASSWORD=password SMS_SENDER_ID=sender SMS_SERVICE=normal
- 发送普通短信消息
use Shabayek\Sms\Facades\Sms; $sms = Sms::send('0120000000', 'Hello world');
- 发送 OTP 短信消息
如果您设置短信服务为 normal,则将通过短信消息发送;如果您设置短信服务为 otp,则将通过短信消息发送。
use Shabayek\Sms\Facades\Sms; $sms = Sms::sendOtp('0120000000');
- 验证手机号码
use Shabayek\Sms\Facades\Sms; $phone = '09121234567'; // phone number $otp = '123456'; // otp that you sent to phone $actualOtp = '123456'; // this is the actual otp that you sent to the user $verify = Sms::verify($phone, $otp, $actualOtp); // third params is optional with service otp
- 您可以为 OTP 短信消息设置语言。
en: 英语 ar: 阿拉伯
use Shabayek\Sms\Facades\Sms; $sms = Sms::setLanguage('ar'); ->sendOtp('0120000000');
添加自定义缓存驱动器
- 编写驱动程序
为了创建我们的自定义短信驱动程序,我们首先需要实现 Shabayek\Sms\Contracts\SmsGatewayContract 合同。因此,一个新的 SMS 网关实现可能看起来像这样
namespace Shabayek\Sms\Contracts; class CustomSms implements SmsGatewayContract { public function send($phone, $message): array; public function sendOtp($phone, $message = null); public function verify(string $phone, int $otp, $actualOtp = null): bool; public function balance() { } }
然后,我们需要在我们的自定义短信驱动程序中添加一个新的配置。在 sms 配置中的 connections 键下
'connections' => [ ... 'custom' => [ 'driver' => 'custom', 'username' => 'username', 'password' => 'password', 'sender_id' => 'sender', 'service' => 'normal', ], ... ],
我们可以通过调用 Sms 门面的 extend 方法来完成我们的自定义驱动程序注册
Sms::extend('custom', function ($app) { return new CustomSms(config()); });
测试
composer test
安全漏洞
如果您发现了有关安全性的错误,请通过 esmail.shabayek@gmail.com 发送邮件,而不是使用问题跟踪器。
许可
Laravel SMS 网关包是开源软件,许可协议为 MIT 许可证。