kalyabin/yii2-sms

Yii2 component to use external sms services as websms.ru or smsc.ru

Installs: 9 387

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 3

Forks: 1

Open Issues: 0

Type:package

dev-master 2018-09-23 02:01 UTC

This package is auto-updated.

Last update: 2024-04-29 03:44:35 UTC


README

Набор компонентов для отправки SMS-сообщений из приложения Yii2 через сторонние сервисы типа websms.ru или smsc.ru. Для отправки SMS-сообщений используются SOAP-интерфейсы сервисов.

На данный момент модуль поддерживает только базовые функции:

  • отправка сообщений
  • получение баланса

Установка

composer requre "kalyabin/yii2-sms:*"

Конфигурация приложения

Пример для websms.ru:

return [
    ...
    'components' => [
        ...
        'smsApi' => [
            'class' => 'kalyabin\sms\components\WebSmsSoapApi',
            'wsdl' => 'http://smpp3.websms.ru:8183/soap?WSDL',
            'login' => '<login>', // логин, выданный в websms.ru
            'password' => '<password>', // пароль, выданный в websms.ru
            'useHttpAuthorization' => false,
            'useTestingMode' => false, // включить или отключить тестовый режим отправки
        ],
        ...
    ],
    ...
];

Пример для smsc.ru:

return [
    ...
    'components' => [
        ...
        'smsApi' => [
            'class' => 'kalyabin\sms\components\SmsCSoapApi',
            'wsdl' => 'http://smsc.ru/sys/soap.php?wsdl',
            'login' => '<login>', // логин, выданный в smsc.ru
            'password' => '<password>', // пароль, выданный в smsc.ru
            'useHttpAuthorization' => false
        ],
        ...
    ],
    ...
];

Использование

Запрос баланса

echo 'Баланс на счёте SMS: ' . Yii::$app->smsApi->getBalance();

Отправка SMS

Простая отправка с отправителем по умолчанию (настраивается в профиле сервиса):

// номер телефона, на который отправить сообщение
// поддерживается любой формат, доступный в вышеуказанных сервисах
$to = '71231231111';
// текст сообщения
$text = 'Код подтверждения: 123123';

$result = Yii::$app->smsApi->sendSms($to, $text);

if ($result->isSent) {
    echo 'SMS успешно отправлено';
} else {
    echo 'Не удалось отправить SMS. Дамп ответа от сервиса: ' . var_dump($result->rawProviderData);
}

Отправка с другим отправителем:

// имя отправителя
$from = 'MY-SERVICE';
// номер телефона, на который отправить сообщение
// поддерживается любой формат, доступный в вышеуказанных сервисах
$to = '71231231111';
// текст сообщения
$text = 'Код подтверждения: 123123';

$result = Yii::$app->smsApi->sendSmsFrom($from, $to, $text);

if ($result->isSent) {
    echo 'SMS успешно отправлено';
} else {
    echo 'Не удалось отправить SMS. Дамп ответа от сервиса: ' . var_dump($result->rawProviderData);
}

TODO

  • Логирование и разбор полётов
  • Расширение каждого отдельно взятого сервиса
  • Подключение сервиса sms.ru