No se ha encontrado nada

Está viendo una versión anterior de esta página.

Abrir versión actual

Mensaje transaccional (PHP SDK 1.0)

La clase BulkGate\Sms\Message representa el objeto del mensaje SMS, que consta del contenido del mensaje y del destinatario.

use BulkGate\Sms\Message;

Destinatario

Como primer argumento, la clase acepta un número de teléfono que puede indicarse mediante una cadena:

$message = new Message('420777777777', 'mensaje de prueba');

o acepta una instancia del objeto `Message\PhoneNumber`:

$message = new Sms\Message(new Message\PhoneNumber('420777777777'), 'mensaje de prueba');

También puede indicar el número de teléfono después de crear la instancia del objeto mediante el método phoneNumber($phone_number, $iso = null):

$message = new Sms\Message(); $message->phoneNumber('420777777777'); // cadena $message->phoneNumber('777777777', BulkGate\Sms\Country::CZECH_REPUBLIC); // Variante que completa el prefijo internacional $message->phoneNumber(new Message\PhoneNumber('420777777777'));

Para obtener el número de teléfono puede utilizar el método getPhoneNumber(), que siempre devuelve una instancia del objeto `Message\PhoneNumber`.

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

Texto del mensaje

El segundo parámetro es el texto del mensaje. También aquí hay 2 opciones: la primera es indicar el texto mediante una cadena y la otra, una instancia de la clase `Message\Text`.

$message = new Message( new Message\PhoneNumber('420777777777'), new Message\Text('mensaje de prueba') );

Por supuesto, también puede definir el texto después de crear la instancia del objeto mediante el método text($text, array $variables = [])

$message = new Sms\Message(); $message->phoneNumber('420777777777'); // cadena $message->text('mensaje de prueba'); // cadena $message->text(new Message\Text('mensaje de prueba')); $message->text( 'Hola <first_name> <last_name>', [ 'first_name' => 'Juan', 'last_name' => 'García' ]); // rellenado de variables; el texto resultante es "Hola Juan García"

Para obtener el texto del mensaje puede utilizar el método getText(), que siempre devuelve una instancia del objeto `Message\Text`.

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

Compatibilidad con JSON

El objeto BulkGate\Sms\Message implementa la interfaz \JsonSerializable, que permite convertirlo a formato JSON mediante json_encode().

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

La salida es:

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

Las claves status, price, credit e id solo se rellenan tras el envío, y scheduled, en cuanto llama a schedule().

Conversión a cadena

El objeto BulkGate\Sms\Message implementa el método mágico __string()

/** @var BulkGate\Sms\Message $message */ $message = (string) $message; // en la variable echo $message; // a la salida

La salida es:

420777777777: mensaje de prueba

Conversión a array

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

Fluent interface

Fluent interface es la técnica de encadenar métodos.

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

Información tras el envío

Una vez enviado el mensaje, puede obtener de él el precio, el estado y el id del mensaje.

$id = $message->getId(); // id del mensaje $status = $message->getStatus(); // estado $price = $message->getPrice(); // precio $credit = $message->getCredit(); // saldo de crédito tras el envío

Programación del mensaje

El método schedule() establece la hora de envío como Unix timestamp. Sin parámetro, cancela la programación.

$message->schedule(strtotime('2026-01-15 09:00')); // programar $message->schedule(); // cancelar la programación
¿Le ha resultado útil esta página?