Clase para enviar sms con la plataforma DIDIMO
PHP 5.4.0 or superior
Clase creada por Eduardo Díaz, Madrid 2017
Twitter: @eduardo_dx
composer require didimo/sms
include_once('vendor/autoload.php');
use Didimo\Sms\Sms;
$sms = new Sms('USER','PASSWORD');
//Enviar sms desde producción
$sms->setEnvironment('live');
$response = $sms->createMessage('Prueba','34666666666','Esto es una prueba');
if($response->Status == 200) {
if($response->ResponseCode == 0 && $response->ResponseMessage == 'Operation Success') {
echo 'Enviado correctamnete';
}
else {
echo 'Error, no se pudo enviar el sms';
}
}
else {
print_r($response);
}
Tener en cuenta que para enviar sms de pruebas, tenéis que contactar por vuestro proveedor para que os de de alta. Bastará con cambiar setEnviorement a test
$sms->setEnvironment('test');
Nota: Podemos pasar un tercer parámetro para programar el envío del sms, dicho valor tiene que tener el siguiente formato Y-m-d\TH:i:s.
$now = date('Y-m-d H:i:s');
$newdate = date('Y-m-d\TH:i:s', strtotime('+1 hour', strtotime($now)));
$sms->createMessage('Prueba','34666666666','Mensaje con scheduler',$newdate);
stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[Id] => cb303162-ee35-4357-98xc-90025a69da00
[Status] => 200
)
include_once('vendor/autoload.php');
use Didimo\Sms\Sms;
$sms = new Sms('USER','PASSWORD');
//Enviar sms desde producción
$sms->setEnvironment('live');
$messages = ['0034666666666' => 'Mensaje personalizado', '0034777777777' => 'Otro mensaje personalizado'];
$response = $sms->createSend('Prueba',$messages);
if($response->Status == 200) {
if($response->ResponseCode == 0 && $response->ResponseMessage == 'Operation Success') {
echo 'Enviado correctamente';
}
else {
echo 'Error, no se pudo enviar el sms'.;
}
}
else {
print_r($response);
}
Nota: También podemos aplicar un envío programado del sms, como comentamos en el punto anterior.
stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[Output] => Array
(
[0] => stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[Id] => b9d4e771-82e7-40b0-a338-26653a4scf3h
[Mobile] => 0034666666666
[Text] => Mensaje personalizado
)
[1] => stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[Id] => 51423261-0a9c-41c6-8139-a097304aa240
[Mobile] => 0034777777777
[Text] => Otro mensaje personalizado
)
)
[Status] => 200
)
include_once('vendor/autoload.php');
use Didimo\Sms\Sms;
$sms = new Sms('USER','PASSWORD');
//Consultar en producción
$sms->setEnvironment('live');
$id='c366018b-97ba-4a78-8183-0d975bd2620b';
$response = $sms->getMessageStatus($id);
if($response->Status == 200) {
if($response->ResponseCode == 0 && $response->ResponseMessage == 'Operation Success') {
echo "Estatus: ".$response->StatusDescription;
}
else {
echo 'Error al obtener estatus';
}
}
else{
print_r($response);
}
stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[StatusCode] => PT0001
[StatusDescription] => Pendiente - En Bandeja de Salida
[Status] => 200
)
include_once('vendor/autoload.php');
use Didimo\Sms\Sms;
$sms = new Sms('USER','PASSWORD');
//Consultar en producción
$sms->setEnvironment('live');
$response = $sms->getCredits();
if($response->Status == 200) {
if($response->ResponseCode == 0 && $response->ResponseMessage == 'Operation Success') {
echo "Total saldo: ".$response->Credits;
}
else {
echo 'Error al obtener saldo';
}
}
else {
print_r($response);
}
stdClass Object
(
[ResponseCode] => 0
[ResponseMessage] => Operation Success
[Credits] => 8000
[Status] => 200
)
Web API Didimo SMS - Manual de Integracion
Please see CHANGELOG for more information about what has changed recently.
The MIT License (MIT). Please see License File for more information.
¿Te gustaría apoyarme? ¿Aprecias mi trabajo? ¿Lo usas en proyectos comerciales?
¡Siéntete libre de hacer una pequeña donación! 😉