ssheduardo / redsys-laravel

Package Redsys
MIT License
90 stars 31 forks source link

Como tiene que ser la ruta para el formulario #46

Closed xbfast closed 3 years ago

xbfast commented 3 years ago

Hola buenas es la primera vez que utilizo redsys trabajando con Laravel y no me queda muy claro como hacerlo funcionar. Normalmente cuando configuras PayPal o Stripe, desde la vista del producto creas una ruta y se dirige a un controlador que lo hace todo. Pero estoy intentando configurarlo pero no me devuelve ni el importe.

Esto seria el action que tengo en el formulario:

<form action="{{ url('redsys') }}" method="get" name="confirmar_pedido" id="confirmar_pedido">

Luego la ruta:

Route::get('/redsys', ['as' => 'redsys', 'uses' => 'RedsysController@index']);

Que de por si no entiendo el 'as' => 'redsys', 'uses' => .

Y luego el controlador:

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($display=false)
    {
        try{
            $key = config('redsys.key');

            Redsys::setAmount(rand(10,600));
            Redsys::setOrder(time());
            Redsys::setMerchantcode('352101091'); //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;
    }
}

Cuando pulso al boton del formulario me sale una página en blanco con un botón de send y al pulsarle me devuelve error redsys, si coge el código comercio pero no el importe.

Además de eso, no puedo hacer que cuando pulso al botón del formulario vaya directamente a redsys?

Gracias por tu ayuda

ssheduardo commented 3 years ago

$form = Redsys::createForm(); Esto sólo genera el botón con todos los datos a enviar al redsys, luego puedes hacer una redirección. Tienes más ejemplos en la clase base. https://github.com/ssheduardo/sermepa

xbfast commented 3 years ago

Gracias ya lo solucione, no entendia buen como funcionaba. Gracias por el trabajo!

gabrielmartorres commented 2 years ago

Hola @xbfast, Al final como lo solucionaste? Estoy igual que comentas, me devuelve error redsys, si coge el código comercio pero no el importe. Gracias