glsv/yii2-smssender

通过不同的短信提供商发送短信,并将日志条目记录到数据库中。

维护者

详细信息

github.com/glsv/smssender

源代码

问题

安装: 7

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放性问题: 0

类型:yii2-extension

v1.0.1 2020-02-10 04:52 UTC

This package is auto-updated.

Last update: 2024-09-10 15:23:10 UTC


README

一个基于短信提供商的包装组件,支持日志记录到数据库和用于构建查看日志界面的辅助器。

适用于以下情况:

  • 对大量接收者进行发送(例如订阅者、广告商等)
  • 需要查看发送日志的接口
  • 需要与特定短信提供商的独立性

安装

composer require glsv/yii2-smssender "*"

使用

$smsSender->send($phone, $message, SendMethod::METHOD_MANUAL);

消息将通过连接的短信提供商发送,发送结果(成功或失败)将被记录。

配置

  1. 短信提供商配置
  2. 配置依赖注入
  3. 配置和执行迁移
  4. 添加处理短信提供商回调(可选)

1. 短信提供商配置

将短信提供商配置放在 params.php 中。以下为 SmsAeroProvider 的示例。

'smsAeroProvider' => [
  'user' => 'login',
  'api_key' => 'api_key',
  'sign' => 'sign',
  'channel' => \glsv\smssender\providers\smsAero\SmsAeroProvider::CHANNEL_DIRECT,
  'callbackUrl' => 'https://site.com/sms-aero/callback/update-status',
  'debug_mode' => false,
]

2. BootstrapComponent 用于依赖注入

use yii\base\BootstrapInterface;
use glsv\smssender\providers\smsAero\SmsAeroProvider;
use glsv\smssender\interfaces\SmsProviderInterface;
use glsv\smssender\interfaces\SmsSenderInterface;
use glsv\smssender\SmsSender;

class BootstrapComponent implements BootstrapInterface
{
    public function bootstrap($app)
    {
        $container = \Yii::$container;

        $config = \Yii::$app->params['smsAeroProvider'];

        $container->set(SmsProviderInterface::class, SmsAeroProvider::class, [$config]);
        $container->setSingleton(SmsSenderInterface::class,  SmsSender::class);
    }
}

将 BootstrapComponent 添加到 main.php

'bootstrap' => [\common\components\BootstrapComponent::class],

3. 迁移

通过命令执行迁移

php yii migrate-sms

4. 处理短信提供商回调

如果需要处理短信提供商的回调,则将相应提供商的模块添加到应用程序配置中。例如,对于以下格式的回调

https://site.com/sms-aero/callback/update-status

添加

'modules' => [
    'sms-aero' => [
        'class' => 'glsv\smssender\providers\smsAero\module\Module',
        'controllerNamespace' => 'glsv\smssender\providers\smsAero\module\controllers',
    ],
],

5. 查看日志界面

基本的查看日志界面通过应用程序配置中的模块连接。

'modules' => [
    'sms-sender' => [
        'class' => 'glsv\smssender\module\Module',
        'controllerNamespace' => 'glsv\smssender\module\controllers',
        'defaultRoute' => 'sms-log/index'
    ],
]

访问地址为: http://your-site.com/sms-sender/

通常,界面和控制器都需要个性化设置。更多详细信息请参阅 描述