lomayko/turbosms

TurboSMS for Laravel 5+

1.2 2020-07-22 07:33 UTC

This package is auto-updated.

Last update: 2024-09-22 19:01:25 UTC


README

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

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

Laravel > 5.8, PHP >= 7.2.5

最小版本Laravel 5.8

安装

使用Composer安装包。

composer require lomayko/turbosms

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

Lomayko\TurboSMS\TurboSMSServiceProvider::class,

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

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

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

php artisan vendor:publish --provider="Lomayko\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

获取状态message_id接受array || string

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

//or
$arr = collect();
$arr->push('FIRST_MESSAGE_ID');
$arr->push('SECOND_MESSAGE_ID');
$arr->push('XXX_MESSAGE_ID');
$status = TurboSMS::getItemStatus($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[TurboSMS::SENT_TYPE_SMS || null, TurboSMS::SENT_TYPE_VIBER, TurboSMS::SENT_TYPE_HYBRID])

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

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

完全自定义的发送。允许您自己构建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 приветствует Вас!', TurboSMS::SENT_TYPE_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. В Вайбере не отправится', TurboSMS::SENT_TYPE_HYBRID);

变更日志

请参阅变更日志以了解最近的变化。

贡献

请参阅贡献指南以获取详细信息。

鸣谢

许可证

麻省理工学院许可证(MIT)。请参阅许可证文件获取更多信息。