glsv / yii2-smssender
通过不同的短信提供商发送短信,并将日志条目记录到数据库中。
v1.0.1
2020-02-10 04:52 UTC
Requires
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- 33evgenyy33/yii2-smsaerov2: dev-master
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^5.7
- vlucas/phpdotenv: ^4.1
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. 短信提供商配置
将短信提供商配置放在 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/
通常,界面和控制器都需要个性化设置。更多详细信息请参阅 描述。