jumper423 /yii2-sms
接收短信消息
2.5.4
2016-10-11 13:45 UTC
Requires
- php: >=5.4.0
- jumper423/yii2-behaviors: *
- yiisoft/yii2: *
README
接收短信消息
组件允许将多个接收短信服务的服务集成在一起。
服务
目前开发了以下服务的api
特性
- 直接集成多个接收短信服务
- 轻松添加自定义服务
- 分析哪个服务有可用的号码
- 为特定网站选择最划算的服务
安装
建议通过 composer 安装此扩展。
或者运行
composer global require "fxp/composer-asset-plugin:^1.2.0"
composer require --prefer-dist jumper423/yii2-sms "*"
或者添加
"jumper423/yii2-sms": "*"
到文件 composer.json
。
配置
指定账户密钥以及默认接收短信的地方。
'components' => [ 'sms' => [ 'class' => \jumper423\sms\Sms::className(), 'site' => \jumper423\sms\service\SmsSites::OTHER, 'services' => [ [ 'class' => \jumper423\sms\service\SmsActivateService::className(), 'apiKey' => 'apiKey1234567890', ], [ 'class' => \jumper423\sms\service\SmsAreaService::className(), 'apiKey' => 'apiKey1234567890', ], [ 'class' => \jumper423\sms\service\SmsSimService::className(), 'apiKey' => 'apiKey1234567890', ], [ 'class' => \jumper423\sms\service\SmsRegService::className(), 'apiKey' => 'apiKey1234567890', ], ], ], ],
方法
/** @var Sms $sms */ $sms = \Yii::$app->sms;
获取总余额请求
$balance = $sms->getBalance(); if (!$balance) { throw new Exception('Нет денег на смс'); }
更改获取短信的网站
$sms->site = \jumper423\sms\service\SmsSites::VKONTAKTE;
可用的号码数量
$count = $sms->getNumbersStatus();
获取号码
$number = $sms->getNumber();
更改状态
// Отменить активацию $sms->setStatus($sms::STATUS_CANCEL); // Сообщить о готовности номера (смс на номер отправлено) $sms->setStatus($sms::STATUS_READY); // Сообщить о неверном коде $sms->setStatus($sms::STATUS_INVALID); // Завершить активацию(если был статус "код получен" - помечает успешно и завершает, если был "подготовка" - удаляет и помечает ошибка, если был статус "ожидает повтора" - переводит активацию в ожидание смс) $sms->setStatus($sms::STATUS_COMPLETE); // Сообщить о том, что номер использован и отменить активацию $sms->setStatus($sms::STATUS_USED);
获取代码
$code = $sms->getCode();
使用示例
$sms = new Sms(); try { $number = $sms->getNumber(); ... $sms->setStatus($sms::STATUS_READY); list($status, $code) = $sms->getCode(); if ($status) { ... $sms->setStatus($sms::STATUS_COMPLETE); } else { ... } } catch (Exception $e) { $sms->setStatus($sms::STATUS_CANCEL); throw $e; }