Nada encontrado

Está a ver uma versão anterior desta página.

Abrir versão atual

Mensagem transacional (PHP SDK 1.0)

A classe BulkGate\Sms\Message representa o objeto da mensagem SMS, composto pelo conteúdo da mensagem e pelo destinatário.

use BulkGate\Sms\Message;

Destinatário

Como primeiro argumento, a classe aceita um número de telefone, que pode ser indicado como string:

$message = new Message('420777777777', 'mensagem de teste');

ou aceita uma instância do objeto `Message\PhoneNumber`:

$message = new Sms\Message(new Message\PhoneNumber('420777777777'), 'mensagem de teste');

O número de telefone também pode ser indicado depois de criar a instância do objeto, através do método phoneNumber($phone_number, $iso = null):

$message = new Sms\Message(); $message->phoneNumber('420777777777'); // string $message->phoneNumber('777777777', BulkGate\Sms\Country::CZECH_REPUBLIC); // Opção com o preenchimento do indicativo internacional $message->phoneNumber(new Message\PhoneNumber('420777777777'));

Para obter o número de telefone, pode utilizar o método getPhoneNumber(), que devolve sempre uma instância do objeto `Message\PhoneNumber`.

/** @var Message\PhoneNumber $phone_number */ $phone_number = $message->getPhoneNumber();

Texto da mensagem

O segundo parâmetro é o texto da mensagem. Também aqui existem 2 opções: a primeira é indicar o texto como string, a segunda é uma instância da classe `Message\Text`.

$message = new Message( new Message\PhoneNumber('420777777777'), new Message\Text('mensagem de teste') );

Naturalmente, também pode definir o texto depois de criar a instância do objeto, através do método text($text, array $variables = [])

$message = new Sms\Message(); $message->phoneNumber('420777777777'); // string $message->text('mensagem de teste'); // string $message->text(new Message\Text('mensagem de teste')); $message->text( 'Olá <first_name> <last_name>', [ 'first_name' => 'João', 'last_name' => 'Silva' ]); // preenchimento das variáveis; o resultado é "Olá João Silva"

Para obter o texto da mensagem, pode utilizar o método getText(), que devolve sempre uma instância do objeto `Message\Text`.

/** @var Message\Text $text */ $text = $message->getText();

Suporte de JSON

O objeto BulkGate\Sms\Message implementa a interface \JsonSerializable, que permite convertê-lo para o formato JSON através de json_encode().

/** @var BulkGate\Sms\Message $message */ $message = new Message('420777777777', 'mensagem de teste'); echo json_encode($message);

O resultado é:

{ "number": { "number": "420777777777", "iso": null }, "text": "mensagem de teste", "status": "preparation", "price": 0.0, "credit": 0.0, "id": null, "scheduled": null }

As chaves status, price, credit e id só são preenchidas após o envio, scheduled depois de chamar schedule().

Conversão para string

O objeto BulkGate\Sms\Message implementa o método mágico __string()

/** @var BulkGate\Sms\Message $message */ $message = (string) $message; // para a variável echo $message; // para a saída

O resultado é:

420777777777: mensagem de teste

Conversão para array

/** @var BulkGate\Sms\Message $message */ $array = $message->toArray();

Fluent interface

Fluent interface é a técnica de encadeamento de métodos.

$message = new Sms\Message(); $message->phoneNumber('420777777777') ->text('mensagem de teste');

Informações após o envio

Depois de enviar a mensagem, pode obter dela o preço, o estado e o id da mensagem.

$id = $message->getId(); // id da mensagem $status = $message->getStatus(); // estado $price = $message->getPrice(); // preço $credit = $message->getCredit(); // saldo de crédito após o envio

Agendamento da mensagem

O método schedule() define a hora de envio como Unix timestamp. Sem parâmetro, cancela o agendamento.

$message->schedule(strtotime('2026-01-15 09:00')); // agendar $message->schedule(); // cancelar o agendamento
Esta página foi útil?