lowbase / yii2-sms
Yii2 Sms 扩展。
1.0.2
2017-03-31 22:50 UTC
Requires
- yiisoft/yii2: ~2.0.0
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
- 从服务提供商(服务)获得的 IDphone
- 电话text
- 消息文本type
- 消息类型(可选)for_user_id
- 用户 ID(可选)status
- 消息状态created_by
- 发送者created_at
- 请求发送的时间must_sent_at
- 必需时间(用于延迟发送)check_status_at
- 更新状态的时间provider
- 发送所使用的服务名称provider_answer
- 从服务收到的当前消息的最后一个响应