ibrahem-kamal / omni-messaging
一个易于使用、一致的 Laravel SMS 库
2.2.0
2024-04-13 17:30 UTC
Requires
- php: ^8.2|^8.3
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-08 19:13:20 UTC
README
一个易于使用、一致的 Laravel SMS 库
Omni messaging 是深受 PHP OmniPay 库的启发,旨在为 Laravel 提供一个简单且一致的接口,用于发送短信。
目前有很多 SMS 网关,它们都有自己的 API,也都有自己的操作方式。Omni Messaging 设计为提供一致的接口,用于发送短信,无论您使用的是哪个网关。
当前支持的网关有(未来将添加更多,由我或社区添加)
安装
您可以通过 composer 安装此包
composer require ibrahem-kamal/omni-messaging
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="omni-messaging-migrations"
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="omni-messaging-config"
这是已发布配置文件的内容
return [ /** * Channels should be added in the following format: * 'channels' => [ * 'channel_name' => [ * 'driver' => 'driver_name', * 'options' => [] * ] * ] */ 'channels' => [], 'webhook' => [ 'queue' => 'default', ], ];
用法
- 发送短信
$sms = OmniMessaging::driver('jawaly')->send($message,$mobileNumber,$sender,$options = []); $sms->isSuccess(); //bool $sms->getErrorsString(); // errors as string $sms->getErrors(); // errors as array $sms->getData(); // array of data returned from the gateway $sms->toArray(); // array of all the above
- 获取余额
$balance = OmniMessaging::driver('jawaly')->getBalance(); $balance->isSuccess(); //bool $balance->getErrorsString(); // errors as string $balance->getErrors(); // errors as array $balance->getData(); // array of data returned from the gateway $balance->toArray(); // array of all the above
- 处理短信 Webhooks
默认情况下,此包将使用网关逻辑处理传入的短信 Webhooks,并发送一个带有
parsedWebhookData
负载数据的事件OmniMessagingWebhookUpdateEvent
。例如,要监听传入的短信,您可以执行以下操作
// in your event service provider OmniMessagingWebhookUpdateEvent::class => [ YourListener::class, ]
并在您的监听器中,您可以按以下方式访问解析后的数据
public function handle(OmniMessagingWebhookUpdateEvent $event) { foreach ($event->parsedWebhookData as $parsedNumber) { $parsedNumber->getNumber(); // phone number string $parsedNumber->getFrom(); // sender string $parsedNumber->getReference(); // reference string such as message id $parsedNumber->isSuccess(); // bool $parsedNumber->getError(); // string $parsedNumber->toArray(); // array of all the above } }
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。
路线图
[❌] 为本地开发创建日志驱动程序
[❌] 创建 Twilio 驱动程序