husnet/laravel-smsup.ch

Laravel 包,用于提供 SmsUp.ch API 集成。

V1.0.0 2021-06-14 18:47 UTC

This package is auto-updated.

Last update: 2024-09-15 02:16:59 UTC


README

安装

安装包

您可以通过 composer 安装此包

composer require husnet/laravel-smsupch

配置

将您的 SmsUp API 密钥添加到 config/services.php 文件中

return [   
    ...
    ...
    'smsUpCh' => [
         'token' => env('SMSUPCH_TOKEN'),
         'simulate' => env('SMSUPCH_SIMULATE'), // true or false
         'sender' => env('SMSUPCH_SENDER_NAME', config('app.name')),
    ]
    ...
];

如果您想模拟提交消息,请将 simulate 设置为 true,这对于测试和调试非常理想,它没有任何费用。

用法

使用 Laravel 通知

使用 artisan 创建通知

php artisan make:notification someNotification

在您的通知的 public function via($notifiable) 方法中返回 [smsUpCh]

public function via($notifiable)
{
    return ['smsUpCh'];
}

在您的通知中添加方法 public function toSmsUp($notifiable),并返回 SmsUpChMessage 实例

use Husnet\LaravelSmsUpCh\SmsUpChMessage;
...
public function toSmsUpCh($notifiable)
{
    $message = new SmsUpChMessage();
    $message->text($this->text);
    return $message;
}

如果您没有指定参数 to,请确保您的通知实体已定义 routeNotificationForSmsUpCh 方法

/**
 * Route notifications for the SmsUp channel.
 *
 * @return string
 */
public function routeNotificationForSmsUpCh(): string
{
    return $this->phone;
}

使用 SmsUp 门面

发送消息

use Husnet\LaravelSmsUpCh\SmsUpChMessage;
use Husnet\LaravelSmsUpCh\Facades\SmsUpCh;
...
    try {
        $phone_owner->notify(new ClientNotification($message_text));
    }
    catch (\Exception $e) {
        session()->flash('error', __('Error: SMS API Timeout'));
    }

可用事件

LaravelSmsUp 提供了方便的事件,提供了有关短信消息所需的信息。

消息已发送

在发送一条或多条消息时触发。

示例

use Husnet\LaravelSmsUpCh\Events\SmsUpChMessageWasSent;

class SmsUpMessageSentListener
{
    /**
     * Handle the event.
     *
     * @param  SmsUpChMessageWasSent  $event
     * @return void
     */
    public function handle(SmsUpChMessageWasSent $event)
    {
        $response = $event->response; // Class SmsUpResponse
        $message = $event->message; // Class SmsUpMessage

        // flashing to session
        session()->flash('message.to', $message->getTo());
        session()->flash('message.text', $message->getText());

        session()->flash('response.status', $response->getStatus());
        session()->flash('response.message', $response->getMessage());
        session()->flash('response.credits', $response->getCredits());
        session()->flash('response.invalid', $response->getInvalid());

    }
}

在您的 EventServiceProvider

protected $listen = [
        ...
        'Husnet\LaravelSmsUpCh\Events\SmsUpChMessageWasSent' => [
            'App\Listeners\SmsUpChMessageSentListener',
        ],
    ];

SmsUp.ch API 文档

有关更多信息,请访问 SmsUp.ch API 文档

支持

您可以在问题部分自由发布您的问题。

致谢

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。