ssheduardo / redsys-laravel

Package Redsys
MIT License
90 stars 31 forks source link

Error en la respuesta #61

Closed xbfast closed 10 months ago

xbfast commented 1 year ago

Buenas noches, utilizo laravel 8 y redsys en mi tienda.

Resulta que no se que pasa, pero el banco no siempre me manda la respuesta, por lo que no puedo comprobar el pedido y actualizar el pedido. Por lo que toda la función que hago para actulizar el pedido no puedo realizarla.

Aveces pasa eso "no siempre" y hoy por ejemplo he recibido al cobre pero la respuesta que recibo por parte del banco es operación cancelada.

$key = config('redsys.key');
        $parameters = Redsys::getMerchantParameters($request->input('Ds_MerchantParameters'));
        $DsResponse = $parameters["Ds_Response"];
        $DsResponse += 0;

if (Redsys::check($key, $request->input()) && $DsResponse <= 99) {
    //Aquí pongo todo para actualizar el pedido
}else{
    $orders = DB::table('orders')
       ->where('ticket', $parameters['Ds_MerchantData'])
       ->update([
             'estado' => '3',
             'orderCaixa' => $parameters['Ds_Order']
        ]);
}

Además en la notificación dentro del canal de redsys recibo esto:

Error (Server returned HTTP response code: 405 for URL: https://url/respuesta-pago)

Pero la mayoria de operaciones funcionan bien y el soporte de redsys no me da solución, y no puede ser que en unos pedidos reciba la notificación y en otros no.

Alguna solución para esto??

aremesal commented 1 year ago

Un error 405 es un error de método no permitido. Seguramente el TPV está enviando la respuesta vía GET cuando tú tienes la ruta para POST, o viceversa. Mira en el log de Laravel y comprueba en testing que estás configurando la ruta con el método que el TPV está usando para enviar la respuesta.

ssheduardo commented 1 year ago

Hasta la fecha siempre notifica por POST, pueda ser algún tipo de error, puedes comentarlo con el soporte de Redsys.

xbfast commented 1 year ago

Yo en la respuesta de pago lo tengo en GET, puede ser este el problema? Gracias por las respuetas.

ssheduardo commented 1 year ago

Lo más seguro es por POST la respuesta por tema se seguridad.

xbfast commented 1 year ago

Voy a probar y os comento que sucede. Supongo que solo en la respuesta de pago no?