azulae / ceca-laravel
Package ceca for Laravel 8
Requires
- php: ^7.2|^8.0
- laravel/framework: ^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-10-27 03:31:48 UTC
README
Laravel 6/7/8 package to support payments and cancellations through the CECA online tpv.
Install
Via Composer
$ composer require azulae/ceca-laravel
Usage
Ahora debemos cargar nuestro Services Provider dentro del array 'providers' (config/app.php)
Si usas Laravel 5.5 o superior, no necesitas cargar el services provider
Azulae\Ceca\CecaServiceProvider::class
Creamos un alias dentro del array 'aliases' (config/app.php)
Si usas Laravel 5.5 o superior no necesitas crear el alias
'Ceca' => Azulae\Ceca\Facades\Ceca::class,
Y finalmente publicamos nuestro archivo de configuración
php artisan vendor:publish --provider="Azulae\Ceca\CecaServiceProvider"
Esto nos creará un archivo llamado ceca.php dentro de config, en este archivo debemos configurar nuestra key, url ok y ko.
Uso
Lanzar la petición de pago:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Azulae\Ceca\Facades\Ceca; class CecaController extends Controller { // public function index() { try{ if(config('ceca.modo') == "desarrollo") { $CecaNumeroTerminal = config('ceca.terminal_desarrollo'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion_desarrollo'); } else { $CecaNumeroTerminal = config('ceca.terminal'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion'); } Ceca::setMerchantID(config('ceca.codigo_comercio')); Ceca::setEntorno(config('ceca.modo')); Ceca::setClaveEncriptacion($CecaClaveEncriptacion); Ceca::setTerminalID($CecaNumeroTerminal) Ceca::setAcquirerBIN(config('ceca.acquirer_bin')); Ceca::setUrlOk(config('ceca.url_ok')); Ceca::setUrlNok(config('ceca.url_ko')); Ceca::setNumOperacion($saleId); Ceca::setImporte(number_format($total,2)); Ceca::launchRedirection(); } catch(Exception $e){ echo $e->getMessage(); } } }
Comprobar la respuesta del servicio:
<?php $input = $request->all(); if(config('ceca.modo') == "desarrollo") { $CecaNumeroTerminal = config('ceca.terminal_desarrollo'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion_desarrollo'); } else { $CecaNumeroTerminal = config('ceca.terminal'); $CecaClaveEncriptacion = config('ceca.clave_encriptacion'); } // Firma = sha256( Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+TipoMoneda+Exponente+Referencia ) $preFirma = $CecaClaveEncriptacion.config('ceca.codigo_comercio').config('ceca.acquirer_bin').$CecaNumeroTerminal. $input["Num_operacion"].$input["Importe"].$input["TipoMoneda"].$input["Exponente"].$input["Referencia"]; $firma = hash('sha256', $preFirma); $respuestaFirma = $input["Firma"]; // Si la firma calculada coincide con la recibida se procede a finalizar el pedido if($respuestaFirma == $firma) { // Pago correcto . . . } ?>
Change log
Please see CHANGELOG for more information what has changed recently.
Security
If you discover any security related issues, please email :author_email instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.