daaner/turbosms

TurboSMS for Laravel 7+

1.40 2023-04-17 15:41 UTC

This package is auto-updated.

Last update: 2024-09-17 18:26:00 UTC


README

Scrutinizer Code Quality Laravel Support PHP Support Latest Stable Version Official Site Total Downloads License

通过此Laravel框架包(Laravel)使用TurboSMS (turbosms.ua) 发送短信和Viber消息。

方便的包,通过TurboSMS.ua发送和检查短信和Viber消息。

Laravel > 7, PHP >= 7.2.5

最低版本Laravel 7.0,对于更低版本需要使用 guzzle/guzzle

安装

通过Composser安装包。

composer require daaner/turbosms

如果您不使用autodiscover,请将服务提供者在config/app.php配置文件中添加。

Daaner\TurboSMS\TurboSMSServiceProvider::class,

config/app.php中将TurboSMS门面添加到数组中。

'TurboSMS' => Daaner\TurboSMS\Facades\TurboSMS::class,

使用命令执行配置和本地化文件的发布。

php artisan vendor:publish --provider="Daaner\TurboSMS\TurboSMSServiceProvider"

配置

发布资源后,更新config/turbosms.php文件并使用新字段填写.env

  • turbosms.ua网站上创建账户。
  • 将“HTTP API”设置复制到网关设置中,并将其添加到config/turbosms.php中相应的参数。

注意在网关设置页面上,必须获取API令牌并勾选“HTTP API”。

API使用和设置

API

  • setApi($apiKey) - string 指定API密钥,不同于配置中的值
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
  • setSMSSender($smsSender) - string 指定短信发送者,不同于配置中的值
TurboSMS::setSMSSender('TAXI');
  • setViberSender($viberSender) - string 指定Viber发送者,不同于配置中的值
TurboSMS::setViberSender('Mobibon2');
  • setStartTime($startTime) - carbon|string 消息的发送日期和时间。在配置中设置睡眠模式和时间段。在睡眠模式下,消息将被推迟
TurboSMS::setStartTime('2020-10-10 08:22');

//or

TurboSMS::setStartTime(Carbon\Carbon::now()->addMinutes(5));

用于通过 Viber 发送或用于 混合 发送(更详细)的设置

  • setViberText($viberReplaceText) - string 混合发送时在Viber中替换文本(在简单的Viber发送中也会替换文本)
TurboSMS::setViberText('Этот текст будет получен только в Viber');
  • setTTL($ttl) - int 消息的生命周期(60 - 86400)
TurboSMS::setTTL(86400);
  • setImageURL($image) - string 将在消息中显示的图像的完整URL地址
TurboSMS::setImageURL('http://lorempixel.com/400/400/');
  • setCaption($caption) - string 消息中按钮上的文本
TurboSMS::setCaption('Открыть сайт');
  • setAction($action) - string 当收到消息并点击按钮时接收者将跳转到的URL地址
TurboSMS::setAction('https://www.google.com');
  • setCountClicks($countClicks) - string|int 过渡统计标志(1 - 是,其余 - 否)
TurboSMS::setCountClicks(1);
  • setTransactional($isTransactional) - string|int 交易消息标志(1 - 是,其余 - 否)
TurboSMS::setTransactional(1);

方法

getBalance(): return int - 获取余额。出错时返回 null

$balance = TurboSMS::getBalance();

//or

TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$balance = TurboSMS::getBalance($otherApiKey);

dd($balance);

//100500.22 or null

getBalanceJson(): return array - 以JSON获取余额

$balance = TurboSMS::getBalanceJson();

//or

TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$balance = TurboSMS::getBalanceJson($otherApiKey);

dd($balance);

获取message_id状态的获取接受 array | string

$status = TurboSMS::getItemsStatus($messageId);

//or
$arr = collect();
$arr->push('FIRST_MESSAGE_ID');
$arr->push('SECOND_MESSAGE_ID');
$arr->push('XXX_MESSAGE_ID');
$status = TurboSMS::getItemsStatus($arr);

dd($status);
[
  "success" => true
  "result" => [
    0 => [
      "message_id" => "c91a1593-****-0cd0-****-a41c8a9a22c1"
      "response_code" => 0
      "recipient" => "*****"
      "sent" => "2020-01-01 00:00:01"
      "updated" => "2020-01-01 00:00:02"
      "status" => "Delivered"
      "type" => "sms"
      "response_status" => "OK"
    ],
    1 => [
      "message_id" => "c91a1593-****-0cd0-****-a41c8a9a22c2"
      "response_code" => 414
      "response_status" => "NOT_ALLOWED_MESSAGE_ID"
    ]
    ...
  ]
  "info" => "Запрос обработан успешно"
]

发送消息(们)。发送者的值(电话号码)被清除多余的符号

TurboSMS::sendMessages($array_or_one_phone, $text, enum['sms' || null, 'viber', 'both'])

$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем SMS');
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем SMS', 'sms');

// or
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем Viber', 'viber');
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Гибридная отправка. Сразу в Viber, при ошибке - SMS', 'both');

完全自定义的发送。允许自己构建URL和请求体。

TurboSMS::getResponse($url, $body)

$url = 'https://api.turbosms.ua/NEW_MODULE/NEW_METHOD';
$body = [
  ...
];
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$custom = TurboSMS::getResponse($url, $body);

使用示例

use TurboSMS;

...

//простая отправка
$sms = TurboSMS::sendMessages('380667778899', 'TurboSMS приветствует Вас!');
$viber = TurboSMS::sendMessages('380667778899', 'TurboSMS приветствует Вас!', 'viber');


//отправка с параметрами
//если сообщение будет получено в Вайбере, SMS отправки не произойдет
//если Вайбер на номере не доступен - будет отправлена только SMS
$ph = collect(); //массив номеров телефонов
$ph->push('+38(066) 666-55-44'); //валидный номер
$ph->push('+38 (099)a999-88-77 ');  //валидный номер
$ph->push(' телефон правильный, отправится даже с этим текстом: +38-099-11122-33 ');  //валидный номер
$ph->push('телефон с ошибкой (без кода страны): 099-111-22-33');  //невалидный номер
$ph->push('лишние цифры после номера: 38-099-333-44-33 добавочный 5'); //невалидный номер
$ph->push('лишние цифры до номера: 55 улица, 38-099-333-44-33'); //невалидный номер

TurboSMS::setViberSender('Mobibon');
TurboSMS::setSMSSender('TAXI');

TurboSMS::setTTL(86400);
TurboSMS::setImageURL('http://lorempixel.com/400/400/');
TurboSMS::setCaption('Открыть сайт с котиками');
TurboSMS::setAction('https://www.google.com');
TurboSMS::setCountClicks(1);
TurboSMS::setTransactional(1);
TurboSMS::setStartTime('lalala'); //проигнорируется
TurboSMS::setStartTime('2020-10-10 08:22'); //установит дату и время отправки, если она больше текущей
TurboSMS::setViberText('Этот текст будет получен только в Viber');
$sended = TurboSMS::sendMessages($ph, 'Привет в SMS. В Вайбере не отправится', 'both');

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING获取详细信息。

致谢

许可协议

MIT 许可协议 (MIT)。请参阅许可文件获取更多信息。