didimo / sms
Send sms with didimo
Requires
- php: >=5.4
- guzzlehttp/guzzle: ^6.3
This package is auto-updated.
Last update: 2024-12-16 03:21:45 UTC
README
Clase para enviar sms con la plataforma DIDIMO
Requerimientos mínimos
PHP 5.4.0 or superior
Créditos
Clase creada por Eduardo Díaz, Madrid 2017
Twitter: @eduardo_dx
Instalación y uso
Vía Composer
composer require didimo/sms
¿Cómo usar la clase?
Enviar un 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);
Response
stdClass Object ( [ResponseCode] => 0 [ResponseMessage] => Operation Success [Id] => cb303162-ee35-4357-98xc-90025a69da00 [Status] => 200 )
Realizar un envío de 1 o varios mensajes en una sola llamada
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.
Response
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 )
Consultar el estado de un mensaje
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); }
Response
stdClass Object ( [ResponseCode] => 0 [ResponseMessage] => Operation Success [StatusCode] => PT0001 [StatusDescription] => Pendiente - En Bandeja de Salida [Status] => 200 )
Consultar saldo disponible para enviar SMS
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); }
Response
stdClass Object ( [ResponseCode] => 0 [ResponseMessage] => Operation Success [Credits] => 8000 [Status] => 200 )
Documentación oficial
Web API Didimo SMS - Manual de Integracion
Changelog
Please see CHANGELOG for more information about what has changed recently.
Licencia
The MIT License (MIT). Please see License File for more information.
Donación
¿Te gustaría apoyarme? ¿Aprecias mi trabajo? ¿Lo usas en proyectos comerciales?
¡Siéntete libre de hacer una pequeña donación! 😉