jumper423 / yii2-sms
Приём смс сообщений
Package info
Type:project
pkg:composer/jumper423/yii2-sms
2.5.4
2016-10-11 13:45 UTC
Requires
- php: >=5.4.0
- jumper423/yii2-behaviors: *
- yiisoft/yii2: *
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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; }