diffhead/laravel-beeline-sms
Composer 安装命令:
composer require diffhead/laravel-beeline-sms
包简介
Light laravel package for sms sending via Beeline API
README 文档
README
Laravel-пакет для отправки SMS через Beeline A2P SMS API.
Требования
- PHP >= 8.1
- Laravel >= 10.0
Установка
composer require diffhead/laravel-beeline-sms
Пакет поддерживает автообнаружение провайдера Laravel — дополнительная регистрация не требуется.
Публикация конфигурации
php artisan vendor:publish --tag=config
Будет опубликован файл config/beeline-sms.php.
Публикация миграции
Если вы планируете хранить историю отправленных сообщений в БД (реестр), опубликуйте миграцию:
php artisan vendor:publish --tag=migrations php artisan migrate
Настройка
Добавьте переменные в .env:
LARAVEL_BEELINE_API_URL=https://a2p-sms-https.beeline.ru/proto/http/rest LARAVEL_BEELINE_API_LOGIN= LARAVEL_BEELINE_API_PASSWORD= LARAVEL_BEELINE_API_SENDER= LARAVEL_BEELINE_API_GZIP=false LARAVEL_BEELINE_API_COMMENT= LARAVEL_BEELINE_LOG_CHANNEL=daily LARAVEL_BEELINE_REGISTRY_ENABLED=false LARAVEL_BEELINE_REGISTRY_TABLE=beeline_messages LARAVEL_BEELINE_REGISTRY_MODEL=\\SaintSample\\LaravelBeelineSms\\Models\\BeelineMessage
| Переменная | Описание | По умолчанию |
|---|---|---|
LARAVEL_BEELINE_API_URL |
URL эндпоинта Beeline A2P API | — |
LARAVEL_BEELINE_API_LOGIN |
Логин для авторизации в API | — |
LARAVEL_BEELINE_API_PASSWORD |
Пароль для авторизации в API | — |
LARAVEL_BEELINE_API_SENDER |
Имя отправителя (sender ID) | — |
LARAVEL_BEELINE_API_GZIP |
Использовать gzip-сжатие запросов | false |
LARAVEL_BEELINE_API_COMMENT |
Комментарий к отправке | null |
LARAVEL_BEELINE_LOG_CHANNEL |
Канал логирования | daily |
LARAVEL_BEELINE_REGISTRY_ENABLED |
Включить реестр (хранение сообщений в БД) | false |
LARAVEL_BEELINE_REGISTRY_TABLE |
Название таблицы реестра | beeline_messages |
LARAVEL_BEELINE_REGISTRY_MODEL |
Модель для работы с реестром | BeelineMessage |
Использование
Отправка SMS
use SaintSample\LaravelBeelineSms\Facades\BeelineSms; $statuses = BeelineSms::send( targets: ['79991234567', '79997654321'], message: 'Текст сообщения' ); foreach ($statuses as $status) { $status->id(); // ID сообщения в API $status->phone(); // Номер телефона $status->status(); // Статус (accepted) $status->message(); // Текст сообщения $status->sentAt(); // Дата отправки }
Получение статусов
По ID сообщения
use SaintSample\LaravelBeelineSms\Facades\BeelineSms; use SaintSample\LaravelBeelineSms\View\FetchStatuses; $statuses = BeelineSms::statuses( new FetchStatuses(smsId: '851181624766455712') );
По временному интервалу
use SaintSample\LaravelBeelineSms\Facades\BeelineSms; use SaintSample\LaravelBeelineSms\View\FetchStatuses; use SaintSample\LaravelBeelineSms\View\DateInterval; use Carbon\Carbon; $statuses = BeelineSms::statuses( new FetchStatuses( dateInterval: new DateInterval( from: Carbon::yesterday(), until: Carbon::now(), ) ) );
Статусы сообщений
| Статус | Описание |
|---|---|
queued |
Сообщение находится в очереди отправки |
accepted |
Сообщение передано оператору |
delivered |
Сообщение доставлено абоненту |
rejected |
Сообщение отклонено оператором |
undeliverable |
Невозможно доставить (абонент недоступен) |
error |
Ошибка отправки |
expired |
Истекло время ожидания финального статуса |
unknown |
Статус неизвестен |
aborted |
Сообщение отменено пользователем |
Реестр сообщений
При включённом реестре (LARAVEL_BEELINE_REGISTRY_ENABLED=true) пакет автоматически сохраняет отправленные сообщения в базу данных через слушатель события MessagesSent.
Таблица содержит поля: external_message_id, status, target, message, sent_at.
Обновление статусов
Для массового обновления статусов сообщений в реестре используйте artisan-команду:
php artisan beeline-messages:update-statuses
Команда находит все сообщения с незавершёнными статусами и создаёт отдельную очередную задачу (UpdateMessageStatus) для обновления каждого из них.
События
| Событие | Описание |
|---|---|
MessagesSent |
Вызывается после успешной отправки SMS. Содержит коллекцию статусов. |
Вы можете подписаться на событие для реализации собственной логики:
use SaintSample\LaravelBeelineSms\Events\MessagesSent; Event::listen(MessagesSent::class, function (MessagesSent $event) { // $event->getStatuses() — коллекция статусов отправленных сообщений });
Лицензия
MIT
Справочник API
Отправка SMS (POST)
Эндпоинт: https://a2p-sms-https.beeline.ru/proto/http/rest
Request:
{
"action": "post_sms",
"user": "YourUserId",
"pass": "YourApiPassword",
"comment": null,
"message": "YourText",
"target": "79XXXXXXXXX,79XXXXXXXXX",
"sender": "YourSender"
}
Response:
{
"actions": [
{
"id": "851181624766455712",
"phone": "+79XXXXXXXXX",
"message": "YourText",
"action": "post_sms_action",
"sms_type": "SENDSMS",
"sms_res_count": "1",
"sms_group_id": "851182724278083582"
}
],
"agt_id": "1514230",
"date_report": "14.03.2026 20:00:01"
}
Получение статусов (POST)
Эндпоинт: https://a2p-sms-https.beeline.ru/proto/http/rest
Request:
{
"action": "status",
"user": "YourUserId",
"pass": "YourApiPassword",
"sms_id"?: "851181624766455723",
"date_from"?: "d.m.Y H:i:s",
"date_to"?: "d.m.Y H:i:s"
}
Response:
{
"actions": [
{
"sms_group_id": "851182724278083582",
"sms_id": "851181624766455712",
"sms_type": "SENDSMS",
"created": "14.03.2026 20:00:01",
"aul_username": "YourUserId",
"aul_client_addr": "YourClientIP",
"aul_proxy_addr": "YourProxyIP",
"target": "79XXXXXXXXX",
"sender": "YourSender",
"sms_count": "1",
"text": "YourText",
"stc_code": "error",
"sent": "0",
"closed": "1",
"status": "Ошибка отправки",
"action": "status_action",
"close_time": "14.03.26 20:00:01"
}
],
"agt_id": "1514201",
"date_report": "14.03.2026 20:00:01"
}
diffhead/laravel-beeline-sms 适用场景与选型建议
diffhead/laravel-beeline-sms 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 150 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 09 月 10 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「sms」 「laravel」 「laravel-sms」 「Beeline」 「laravel-beeline」 「saintsample」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 diffhead/laravel-beeline-sms 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 diffhead/laravel-beeline-sms 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 diffhead/laravel-beeline-sms 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A mobile phone number validation solution based on laravel
NCloud SENS notification channels for Lovely Laravel.
TurboSMS for Laravel 5+
SMS sent, never so simple.
SDK for payment gateway PlatbaMobilom.sk for PHP7.0
Extensible library for building notifications and sending them via different delivery channels.
统计信息
- 总下载量: 150
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 17
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-10