lowbase/yii2-sms

Yii2 Sms 扩展。

安装数: 1,288

依赖者: 0

建议者: 0

安全性: 0

星标: 4

关注者: 2

分支: 4

公开问题: 3

类型:yii2-extension

1.0.2 2017-03-31 22:50 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:16:11 UTC


README

Yii2-sms - 通过各种服务发送短信消息的管理器

  • 发送短信,查询消息状态,检查余额
  • 包括服务:IqSmsc.ru(短信折扣)、Smsc.ru 作为示例
  • 可以将所有消息信息保存到数据库中
  • 可以通过一个组件通过多个服务发送消息
  • 在主要服务发送失败时,通过备用服务自动发送

安装

php composer.phar require --prefer-dist lowbase/yii2-sms "*"

"lowbase/yii2-sms": "*"

然后运行迁移以创建数据库表

php yii migrate --migrationPath=@vendor/lowbase/yii2-sms/migrations

配置

'components' => [
    ...
        'sms' => [
            'class' => 'lowbase\sms\Sms',
            'cascade' => true,
            'services' => [
                // http://iqsms.ru/api/api_rest/
                'iqsmsc_ru' => [
                    'class' => 'lowbase\sms\services\IqmscRuService',
                    'login' => '...',
                    'password' => '...',
                    'order' => 2,
                ],
                // http://iqsms.ru/api/api_rest/
                'iqsmsc_ru_2' => [
                    'class' => 'lowbase\sms\services\IqmscRuService',
                    'login' => '...',
                    'password' => '...',
                    'order' => 3,
                ],
                // http://smsc.ru/api/
                'smsc_ru' => [
                    'class' => 'lowbase\sms\services\SmscRuService',
                    'login' => '...',
                    'password' => '...',
                    'order' => 1
                ],
            ]
        ]
    ...
]

,其中 'cascade' => true - 在当前服务发送失败时,自动通过下一个服务发送短信。 services - 携带认证数据的消息发送服务(用户名和密码),order(必须填写)- 在级联发送时调用服务的顺序。服务名称(iqsmsc_ru, iqsmsc_ru_2, smsc_ru)可以替换为自定义名称。

可以添加自己的服务。它们需要继承自 lowbase\sms\AbstractService,并在上述配置中指定。

使用

// Получение баланса сервиса по-умолчанию (1-го)
Yii::$app->sms->getBalance(); 

// Вывод баланса сервиса iqsmsc_ru_2
echo Yii::$app->sms->useService('iqsmsc_ru_2')->getBalance();

// Отправка смс сообщения через сервис smsc_ru без сохранения информации в базу данных
Yii::$app->sms->useServicese('smsc_ru')->sendSms('+79801112233', 'Тестовое сообщение', false);

// Отправка смс сообщения сервисом по-умолчанию с сохранением информации в базу данных, тип смс -1, для пользователя 5.
Yii::$app->sms->sendSms('+79801112233', 'Тестовое сообщение', true, 1, 5);

// Получение статуса СМС по Id из базы данных (id = 94) с сохранением статуса в базе данных
Yii::$app->sms->getSmsStatusById(94);

// Вывод статуса смс по Id без сохранения в базу данных
echo Yii::$app->sms->getSmsStatusById(94, false);

// Получение статуса смс по Id, полученному от провайдера (сервиса). 
Yii::$app->sms->getSmsStatusByProviderId(1977846286);

// Для сервиса Smsc.ru необходимо передать доп. параметр phone для работоспособности метода выше
Yii::$app->sms->getSmsStatusByProviderId(3, ['phone' => '+79801112233']);

消息状态

  • -1 - 未知 (STATUS_UNKNOWN)
  • 0 - 错误 (STATUS_FAILED)
  • 1 - 已发送 (STATUS_SENT)
  • 2 - 在队列中等待投递 (STATUS_QUEUED)
  • 3 - 已投递 (STATUS_DELIVERED)

数据库中的消息信息

  • id
  • provider_sms_id - 从服务提供商(服务)获得的 ID
  • phone - 电话
  • text - 消息文本
  • type - 消息类型(可选)
  • for_user_id - 用户 ID(可选)
  • status - 消息状态
  • created_by - 发送者
  • created_at - 请求发送的时间
  • must_sent_at - 必需时间(用于延迟发送)
  • check_status_at - 更新状态的时间
  • provider - 发送所使用的服务名称
  • provider_answer - 从服务收到的当前消息的最后一个响应