DIDIMO SMS - Web API
Clase para enviar sms con la plataforma DIDIMO, (*1)
, (*2)
Requerimientos mínimos
PHP 5.4.0 or superior, (*3)
Créditos
Clase creada por Eduardo Díaz, Madrid 2017, (*4)
Twitter: @eduardo_dx, (*5)
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, (*6)
$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., (*7)
$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., (*8)
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, (*9)
Changelog
Please see CHANGELOG for more information about what has changed recently., (*10)
Licencia
The MIT License (MIT). Please see License File for more information., (*11)
Donación
¿Te gustaría apoyarme?
¿Aprecias mi trabajo?
¿Lo usas en proyectos comerciales?, (*12)
¡Siéntete libre de hacer una pequeña donación! :wink:, (*13)