jumper423 / yii2-sms
Приём смс сообщений
Installs: 65
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 3
Forks: 3
Open Issues: 0
Type:project
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; }