Tras finalizar la actualización de la clases Redsys para trabajar con sha256, he aprovechado en crear este package para laravel, de esta forma hacemos más ameno el trabajar con este framework.
Via Composer
Laravel 5.1
$ composer require "ssheduardo/redsys-laravel=1.0.*"
Laravel 5.2 o 5.3
$ composer require "ssheduardo/redsys-laravel=~1.1"
O si lo prefieres, puedes agregarlo en la sección require de tu composer.json
Laravel 5.1
"ssheduardo/redsys": "1.0.*"
Laravel 5.2 o 5.3
"ssheduardo/redsys": "~1.1"
Ahora debemos cargar nuestro Services Provider dentro del array 'providers' (config/app.php)
Ssheduardo\Redsys\RedsysServiceProvider::class
Creamos un alias dentro del array 'aliases' (config/app.php)
'Redsys' => Ssheduardo\Redsys\Facades\Redsys::class,
Y finalmente publicamos nuestro archivo de configuración
php artisan vendor:publish --provider="Ssheduardo\Redsys\RedsysServiceProvider"
Imaginemos que tenemos esta ruta http://ubublog.com/redsys que enlaza con RedsysController@index
Route::get('/redsys', ['as' => 'redsys', 'uses' => 'RedsysController@index']);
Y el contenido del controlador RedsysController sería este:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Ssheduardo\Redsys\Facades\Redsys;
class RedsysController extends Controller
{
//
public function index()
{
try{
$key = config('redsys.key');
Redsys::setAmount(rand(10,600));
Redsys::setOrder(time());
Redsys::setMerchantcode('999008881'); //Reemplazar por el código que proporciona el banco
Redsys::setCurrency('978');
Redsys::setTransactiontype('0');
Redsys::setTerminal('1');
Redsys::setMethod('T'); //Solo pago con tarjeta, no mostramos iupay
Redsys::setNotification(config('redsys.url_notification')); //Url de notificacion
Redsys::setUrlOk(config('redsys.url_ok')); //Url OK
Redsys::setUrlKo(config('redsys.url_ko')); //Url KO
Redsys::setVersion('HMAC_SHA256_V1');
Redsys::setTradeName('Tienda S.L');
Redsys::setTitular('Pedro Risco');
Redsys::setProductDescription('Compras varias');
Redsys::setEnviroment('test'); //Entorno test
$signature = Redsys::generateMerchantSignature($key);
Redsys::setMerchantSignature($signature);
$form = Redsys::createForm();
}
catch(Exception $e){
echo $e->getMessage();
}
return $form;
}
}
Please see CHANGELOG for more information what has changed recently.
If you discover any security related issues, please email :author_email instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.