Laravel Package para enviar sms con la plataforma didimo.
Eduardo Díaz, Madrid 2017
Twitter: @eduardo_dx
Laravel 5.2, 5.3, 5.4
$ composer require "ssheduardo/didimo-laravel=~1.0"
Ahora debemos cargar nuestro Services Provider dentro del array 'providers' (config/app.php)
Ssheduardo\Didimo\SmsServiceProvider::class
Creamos un alias dentro del array 'aliases' (config/app.php)
'Sms' => Ssheduardo\Didimo\Facades\Sms::class,
En nuestro archivo .env debemos agregar
DIDIMO_USER=TU_USER
DIDIMO_PASSWORD=TU_PASSWORD
Eh agregado una variable más de entorno como ayuda por si queréis configurar el environment en tu entorno de test o producción
DIDIMO_ENVIRONMENT
Por defecto su valor es test
Finalmente publicamos nuestro archivo de configuración por si queremos cambiar la configuración y no hacer eso de las variables de entorno
php artisan vendor:publish --provider="Ssheduardo\Didimo\SmsServiceProvider"
Esto nos creara un archivo llamado didimo.php dentro de config,
Imaginemos que tenemos esta ruta http://ubublog.com/sms que enlaza con SmsController@index
Route::get('/sms', ['as' => 'sms', 'uses' => 'SmsController@index']);
Y el contenido del controlador SmsController sería este:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Ssheduardo\Didimo\Facades\Sms;
class SmsController extends Controller
{
public function index()
{
//Enviar sms desde producción
Sms::setEnvironment('live');
$response = Sms::createMessage('Test','[NUMERO_DESTINO]','Mensaje de prueba');
if($response->Status == 200) {
if($response->ResponseCode == 0 && $response->ResponseMessage == 'Operation Success') {
echo "Enviado correctamente, id status: {$response->Id}";
}
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 live por test
Sms::setEnvironment('test');
//O podemos llamar al valor asignado en el config (test o live)
Sms::setEnvironment(config('didimo.environment'));
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','[NUMERO_DESTINO]','Mensaje con scheduler',$newdate);
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Ssheduardo\Didimo\Facades\Sms;
class SmsController extends Controller
{
public function index()
{
//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);
}
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Ssheduardo\Didimo\Facades\Sms;
class SmsController extends Controller
{
public function index()
{
//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);
}
}
}
Este package se apoya de mi clase principal https://github.com/ssheduardo/didimo.
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! 😉