Інтеграція SMS-розсилання (SMS.ru) з веб-сайтом
SMS.ru — один з популярних сервісів SMS-розсилання для російських веб-сайтів. Простий HTTP API, оплата за кожне повідомлення, можливість реєстрації імені відправника.
Відправка SMS через API
$response = Http::get('https://sms.ru/sms/send', [
'api_id' => env('SMSRU_API_KEY'),
'to' => $phone, // формат: 79001234567
'msg' => "Ваш код підтвердження: {$code}",
'json' => 1,
'from' => 'MyShop' // ім'я відправника (потрібна реєстрація)
]);
$result = $response->json();
// $result['sms'][$phone]['status'] === 'OK' → успіх
// $result['sms'][$phone]['status_code'] → код помилки при невдачі
Клас-обгортка
class SmsRuService
{
public function send(string $phone, string $message): bool
{
$phone = preg_replace('/[^0-9]/', '', $phone);
if (str_starts_with($phone, '8')) {
$phone = '7' . substr($phone, 1);
}
$response = Http::get('https://sms.ru/sms/send', [
'api_id' => config('services.smsru.api_key'),
'to' => $phone,
'msg' => $message,
'json' => 1
]);
return $response->json("sms.{$phone}.status") === 'OK';
}
public function getBalance(): float
{
return Http::get('https://sms.ru/my/balance', [
'api_id' => config('services.smsru.api_key'),
'json' => 1
])->json('balance');
}
}
Типові сценарії
- OTP-коди при реєстрації та вході
- Сповіщення про статус замовлення
- Нагадування про запис / бронювання
- Підтвердження заявки
Перевірка залишку та сповіщення
Нульовий баланс = повідомлення не доходять = користувачі не отримують OTP = не можуть увійти. Потрібен моніторинг балансу зі сповіщенням у Telegram при зниженні нижче порогу.
Тривалість інтеграції: кілька годин.







