ssheduardo / sermepa

Clase para utilizar la pasarela de pagos redsys, sermepa.
MIT License
191 stars 59 forks source link

Error con la tokenización de tarjetas #73

Closed PaulaArmadillo closed 3 years ago

PaulaArmadillo commented 3 years ago

Buenos días.

He implementado esta librería en uno de mis proyectos y después de hablar con el banco para que nos permita la tokenización de las tarjetas (pagar por referencia) cuando mando los parametros de la tarjeta, me da un error.

Querría saber si es que me falta algo que implementar, algun metodo o algo así o si sigue siendo un problema del banco.

Les dejo el código que estoy usando.

Muchas gracias por la ayuda.

`try{

        $key = "sq7HjrUOBfKmC576ILgskD5srU870gJ7";

        //Metodos obligatorios
        $redsys = new Tpv();
        $redsys->setAmount($amount);
        $redsys->setCurrency('978');
        $redsys->setMerchantcode(config('redsys.merchantcode')); //Reemplazar por el código que proporciona el banco
        $redsys->setOrder($session->id . "/" . rand(1,900));
        $redsys->setTerminal('1');
        $redsys->setTransactiontype('0');

        //Metodos condicionales

// $redsys->setMethod('T'); //Solo pago con tarjeta, no mostramos iupay // $redsys->setNotification('http://localhost/noti.php'); //Url de notificacion $redsys->setUrlOk(url('paymentOk')); //Url OK $redsys->setUrlKo(url('paymentKo')); //Url KO // $redsys->setVersion('HMAC_SHA256_V1'); // $redsys->setTradeName('FisioHogar'); // $redsys->setTitular('Pablo Herrera'); // $redsys->setPan('4548812049400004'); //Número de la tarjeta $redsys->setExpiryDate('2012'); //AAMM (año y mes) $redsys->setCVV2('123'); //CVV2 de la tarjeta

        $redsys->setAttributesSubmit('btn_submit', 'btn_id', 'Enviar', 'display:none');

        $redsys->setEnvironment('test'); //Entorno test

        $signature = $redsys->generateMerchantSignature($key);
        $redsys->setMerchantSignature($signature);

        $redsys->setIdentifier();
        //$redsys->setMerchantDirectPayment(true);
        $redsys->executeRedirection();

        $parameters = $redsys->getMerchantParameters($_POST["Ds_MerchantParameters"]);
        $DsResponse = $parameters["Ds_Response"];
        $DsResponse += 0;
        if ($redsys->check($key, $_POST) && $DsResponse <= 99) {
            dd('Pago correcto');
            //acciones a realizar si es correcto, por ejemplo validar una reserva, mandar un mail de OK, guardar en bbdd o contactar con mensajería para preparar un pedido
        } else {
            dd('Pago incorrecto');
            //acciones a realizar si ha sido erroneo
        }

// echo $form; } catch (TpvException $e) { echo $e->getMessage(); }`

ssheduardo commented 3 years ago

Hola, el error persiste??

mikebeebit commented 3 years ago

Hace poco lo estuve probando y por alguna razón no devuelve la tarjeta con los *****, ¿alguna idea de porqué? @ssheduardo

ssheduardo commented 3 years ago

Lo hablaste con el banco @mikebeebit

ssheduardo commented 3 years ago

Al no tener respuesta cerramos el hilo hasta nuevo aviso.