Я хочу: | Спрятать |
Чтобы отправить СМС из PHP, достаточно подключить в ваш код следующую библиотеку. Отправка СМС при этом осуществляется максимально быстро и удобно.
Файл | Ссылка |
---|---|
Библиотека v1.2 (08 июня 2023) | https://sms.ru/files/smsru_php.zip |
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$data = new stdClass();
$data->to = 'телефон, на который регистрировались';
$data->text = 'Hello World'; // Текст сообщения
// $data->from = ''; // Если у вас уже одобрен буквенный отправитель, его можно указать здесь, в противном случае будет использоваться ваш отправитель по умолчанию
// $data->time = time() + 7*60*60; // Отложить отправку на 7 часов
// $data->translit = 1; // Перевести все русские символы в латиницу (позволяет сэкономить на длине СМС)
// $data->test = 1; // Позволяет выполнить запрос в тестовом режиме без реальной отправки сообщения
// $data->partner_id = '1'; // Можно указать ваш ID партнера, если вы интегрируете код в чужую систему
// $data->ip = '89.100.111.222'; // IP адрес пользователя, в случае если вы отправляете код авторизации ему на номер в ответ на его запрос (к примеру, при регистрации). В случае аттаки на ваш сайт, наша система сможет помочь с защитой.
$sms = $smsru->send_one($data); // Отправка сообщения и возврат данных в переменную
if ($sms->status == "OK") { // Запрос выполнен успешно
echo "Сообщение отправлено успешно. ";
echo "ID сообщения: $sms->sms_id. ";
echo "Ваш новый баланс: $sms->balance";
} else {
echo "Сообщение не отправлено. ";
echo "Код ошибки: $sms->status_code. ";
echo "Текст ошибки: $sms->status_text.";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$data = new stdClass();
/* Если текст на номера один */
$data->to = 'телефон, на который регистрировались,74993221627'; // Номера для отправки сообщения (От 1 до 100 шт за раз). Вторым указан городской номер, по которому будет возвращена ошибка
$data->text = 'Hello World'; // Текст сообщения
/* Если текст разный. В этом случае $data->to и $data->text обрабатываться не будут и их можно убрать из кода */
$data->multi = array( // От 1 до 100 штук за раз
"телефон, на который регистрировались" => "Hello World", // 1 номер
"74993221627" => "Hello World 2", // 2 номер (указан городской номер, будет возвращена ошибка)
);
// $data->from = ''; // Если у вас уже одобрен буквенный отправитель, его можно указать здесь, в противном случае будет использоваться ваш отправитель по умолчанию
// $data->time = time() + 7*60*60; // Отложить отправку на 7 часов
// $data->translit = 1; // Перевести все русские символы в латиницу (позволяет сэкономить на длине СМС)
// $data->test = 1; // Позволяет выполнить запрос в тестовом режиме без реальной отправки сообщения
// $data->partner_id = ''; // Можно указать ваш ID партнера, если вы интегрируете код в чужую систему
$request = $smsru->send($data); // Отправка сообщений и возврат данных в переменную
if ($request->status == "OK") { // Запрос выполнен успешно
foreach ($request->sms as $phone => $sms) { // Перебираем массив отправленных сообщений
if ($sms->status == "OK") {
echo "Сообщение на номер $phone отправлено успешно. ";
echo "ID сообщения: $sms->sms_id. ";
echo "";
} else {
echo "Сообщение на номер $phone не отправлено. ";
echo "Код ошибки: $sms->status_code. ";
echo "Текст ошибки: $sms->status_text. ";
echo "";
}
}
echo "Ваш новый баланс: $request->balance";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
Мы настоятельно рекомендуем использовать бесплатную опцию api callback для более быстрого и удобного получения статусов сообщений. Она позволяет вам не запрашивать многократно статус сообщений - он будет автоматически отправляться на ваш сервер в реальном времени.
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->getStatus('1000-100000,1000-100001'); // ID соробщений через запятую
if ($request->status == "OK") { // Запрос выполнен успешно
foreach ($request->sms as $sms_id => $data) { // Перебираем массив сообщений
if ($data->status == "OK") { // Статус сообщения получен
echo "ID сообщения: $sms_id ";
echo "Код статуса сообщения: $data->status_code ";
echo "Текст статуса сообщения: $data->status_text ";
echo "";
} else { // Ошибка в получении статуса
echo "ID сообщения: $sms_id ";
echo "Код ошибки: $data->status_code ";
echo "Текст ошибки: $data->status_text ";
echo "";
}
}
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$data = new stdClass();
/* Если текст на номера один */
$data->to = 'телефон, на который регистрировались,74993221627'; // Номера для отправки сообщения (От 1 до 100 шт за раз). Вторым указан городской номер, по которому будет возвращена ошибка
$data->text = 'Hello World'; // Текст сообщения
/* Если текст разный. В этом случае $data->to и $data->text обрабатываться не будут и их можно убрать из кода */
$data->multi = array( // От 1 до 100 штук за раз
"телефон, на который регистрировались" => "Hello World", // 1 номер
"74993221627" => "Hello World 2", // 2 номер (указан городской номер, будет возвращена ошибка)
);
// $data->from = ''; // Если у вас уже одобрен буквенный отправитель, его можно указать здесь, в противном случае будет использоваться ваш отправитель по умолчанию
// $data->translit = 1; // Перевести все русские символы в латиницу (позволяет сэкономить на длине СМС)
$request = $smsru->getCost($data); // Отправка сообщений и возврат данных в переменную
if ($request->status == "OK") { // Запрос выполнен успешно
foreach ($request->sms as $phone => $data) { // Перебираем массив СМС сообщений
if ($data->status == "OK") { // Сообщение обработано
echo "Номер: $phone ";
echo "Стоимость: $data->cost ";
echo "Длина в СМС: $data->sms ";
} else { // Ошибка в отправке
echo "Номер: $phone ";
echo "Код ошибки: $data->status_code ";
echo "Текст ошибки: $data->status_text ";
}
}
echo "Общая стоимость: $request->total_cost ";
echo "Общая длина СМС: $request->total_sms ";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->getBalance();
if ($request->status == "OK") { // Запрос выполнен успешно
echo "Ваш баланс: $request->balance ";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->getLimit();
if ($request->status == "OK") { // Запрос выполнен успешно
echo "Ваш лимит: $request->total_limit ";
echo "Использовано сегодня: $request->used_today ";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->getSenders();
if ($request->status == "OK") { // Запрос выполнен успешно
foreach ($request->senders as $sender) { // Перебираем массив отправителей
echo "Отправитель: $sender ";
}
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->addStoplist("79991112233","Примечание (видно только вам)");
if ($request->status == "OK") { // Запрос выполнен успешно
echo "Номер добавлен в стоплист.";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->delStoplist("79991112233");
if ($request->status == "OK") { // Запрос выполнен успешно
echo "Номер удален из стоплиста.";
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
require_once 'sms.ru.php';
$smsru = new SMSRU('[зарегистрируйтесь, чтобы получить api_id]'); // Ваш уникальный программный ключ, который можно получить на главной странице
$request = $smsru->getStoplist();
if ($request->status == "OK") { // Запрос выполнен успешно
foreach ($request->stoplist as $phone=>$text) { // Перебираем массив номеров
echo "Номер: $phone ";
echo "Примечание: $text ";
}
} else {
echo "Ошибка при выполнении запроса. ";
echo "Код ошибки: $request->status_code. ";
echo "Текст ошибки: $request->status_text. ";
}
Код | Значение |
---|---|
100 | Команда выполнена успешно (или сообщение принято к отправке) |
100 | Сообщение находится в нашей очереди |
101 | Сообщение передается оператору |
102 | Сообщение отправлено (в пути) |
103 | Сообщение доставлено |
104 | Сообщение не может быть доставлено: время жизни истекло |
105 | Сообщение не может быть доставлено: удалено оператором |
106 | Сообщение не может быть доставлено: сбой в телефоне |
107 | Сообщение не может быть доставлено: неизвестная причина |
108 | Сообщение не может быть доставлено: отклонено |
130 | Сообщение не может быть доставлено: превышено количество сообщений на этот номер в день |
131 | Сообщение не может быть доставлено: превышено количество одинаковых сообщений на этот номер в минуту |
132 | Сообщение не может быть доставлено: превышено количество одинаковых сообщений на этот номер в день |
200 | Неправильный api_id |
201 | Не хватает средств на лицевом счету |
202 | Неправильно указан получатель |
203 | Нет текста сообщения |
204 | Имя отправителя не согласовано с администрацией |
205 | Сообщение слишком длинное (превышает 8 СМС) |
206 | Будет превышен или уже превышен дневной лимит на отправку сообщений |
207 | На этот номер (или один из номеров) нельзя отправлять сообщения, либо указано более 100 номеров в списке получателей |
208 | Параметр time указан неправильно |
209 | Вы добавили этот номер (или один из номеров) в стоп-лист |
210 | Используется GET, где необходимо использовать POST |
211 | Метод не найден |
212 | Текст сообщения необходимо передать в кодировке UTF-8 (вы передали в другой кодировке) |
220 | Сервис временно недоступен, попробуйте чуть позже. |
230 | Превышен общий лимит количества сообщений на этот номер в день. |
231 | Превышен лимит одинаковых сообщений на этот номер в минуту. |
232 | Превышен лимит одинаковых сообщений на этот номер в день. |
300 | Неправильный token (возможно истек срок действия, либо ваш IP изменился) |
301 | Неправильный пароль, либо пользователь не найден |
302 | Пользователь авторизован, но аккаунт не подтвержден (пользователь не ввел код, присланный в регистрационной смс) |
Последнее обновление: 08 Июня 2023 в 13:57