ibrahem-kamal/omni-messaging

一个易于使用、一致的 Laravel SMS 库

2.2.0 2024-04-13 17:30 UTC

This package is auto-updated.

Last update: 2024-09-08 19:13:20 UTC


README

一个易于使用、一致的 Laravel SMS 库

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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 驱动程序