Skip to content

Sms / 短信

配置说明 : 需要 packeton 的私有包权限, 并且再 composer 中配置如下代码

json
{
  "repositories": [
    {
      "type": "composer",
      "url": "https://packeton.kejinxia.com"
    }
  ]
}

安装

composer require weiran/sms 1.0.x-dev

安装附加扩展

因为此扩展包仅仅为了封装 weiran framework 使用, 并没有附带的 composer 包, 所以需要功能正确执行, 需要自行安装

Aliyun

    ...
    "alibabacloud/client": "^1.5",
    "alibabacloud/dysmsapi": "1.8.*",
    ...

更新你的依赖包 composer update 或者全新安装 composer install

添加监听

短信需要监听事件来进行发送, 需要自行补充到业务侧, 例如 System 模块在发送之后会触发 CaptchaSend 事件, 我们需要监听这个事件并触发自己的发送逻辑

在 ServiceProvider 中添加监听

php
class ServiceProvider extends WeiranServiceProvider
{

    protected array $listens = [
        CaptchaSendEvent::class     => [
            SendListener::class
        ],
    ];
}

使用 SendListener 事件来触发短信的发送

php
class SendListener
{
    public function handle(CaptchaSendEvent $event): void
    {
        $Sms = app(SmsContract::class);
        if (!$Sms->send('captcha', $event->passport, [
            'code' => $event->captcha
        ])) {
            throw new ApplicationException($Sms->getError()->getMessage());
        }
    }
}