wearesho-team/turbosms-message-delivery

Turbosms message delivery integration

Installs: 4

Dependents: 0

Suggesters: 1

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 4

pkg:composer/wearesho-team/turbosms-message-delivery

4.0.0 2026-01-12 10:37 UTC

README

Test & Lint Latest Stable Version Total Downloads codecov

wearesho-team/message-delivery implementation of Delivery\ServiceInterface

Installation

composer require wearsho-team/turbosms-message-delivery:^3.0

Quick Start

  • Install to your Project
composer require wearsho-team/turbosms-message-delivery:^3.0
  • Configure environment
Variable Required Description
TURBOSMS_HTTP_TOKEN Yes HTTP API Token
TURBOSMS_SENDER no Sender name, that was declared in your account
TURBOSMS_VIBER_SENDER no Viber-specific sender name (optional)
  • Use in your code
<?php
use Wearesho\Delivery\Message;
use Wearesho\Delivery\MessageOptionsInterface;
use Wearesho\Delivery\TurboSms;
$service = TurboSms\Service::instance();
$service->auth();
$service->balance();
$service->send(new Message("Text", "3809700000000"));
$service->batch("Text", ["3809700000000", "3809700000001"]);
$service->batch("Text", "3809700000001", [
    MessageOptionsInterface::OPTION_SENDER_NAME => "customSenderName",
]);

Usage

Configuration

ConfigInterface have to be used to configure requests. Available implementations:

Additional methods

Besides implementing Delivery\ServiceInterface Service provides

<?php

use Wearesho\Delivery;

$service = new Delivery\TurboSms\Service(
    new Delivery\TurboSms\Config('httpToken', 'senderName (alpha name)'),
);
  • Send sms
<?php

use Wearesho\Delivery;

/** @var Delivery\TurboSms\Service $service */

$service->send(
    new Delivery\Message('Message', '+380000000000')
);
  • Check balance on current account
<?php

use Wearesho\Delivery;

/** @var Delivery\TurboSms\Service $service */

$balance = $service->balance();
$balance->getAmount();
$balance->getCurrency();

$message = (string)$balance; // will output "{amount} Credits"

Sender Name Configuration

The library supports different sender names for SMS and Viber channels:

Priority Order (highest to lowest):

  1. Message-level sender - Set via options, applies to all channels
  2. Viber-specific sender - Set via config for Viber channel only
  3. Default sender - Fallback for all channels

Example with Separate Viber Sender:

<?php
use Wearesho\Delivery;
use Wearesho\Delivery\TurboSms;

// Configuration
$config = new TurboSms\Config(
    httpToken: 'your-token',
    senderName: 'SmsSender',
    viberSenderName: 'ViberSender'
);

$service = new TurboSms\Service(new GuzzleHttp\Client(), $config);

// SMS uses 'SmsSender', Viber uses 'ViberSender'
$service->send(new Delivery\Message('Multi text', '+380970000000', [
    'channel' => ['sms', 'viber']
]));

// Message-level override: both channels use 'CustomSender'
$service->send(new Delivery\Message('Override text', '+380970000000', [
    'channel' => ['sms', 'viber'],
    'senderName' => 'CustomSender'
]));

Environment Configuration:

TURBOSMS_HTTP_TOKEN=your-token
TURBOSMS_SENDER=SmsSender
TURBOSMS_VIBER_SENDER=ViberSender

Authors

License

MIT