ssheduardo / didimo-laravel
Package didimo to send sms with laravel
Requires
- didimo/sms: ^1.0
- illuminate/support: 5.*
This package is auto-updated.
Last update: 2024-12-16 03:46:37 UTC
README
Laravel Package para enviar sms con la plataforma didimo.
Créditos
Eduardo Díaz, Madrid 2017
Twitter: @eduardo_dx
Instalación
Vía Composer
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,
Uso
Enviar un sms
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);
Consultar el estado de un mensaje
<?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); } } }
Consultar saldo disponible para enviar SMS
<?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.
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! 😉