ssheduardo / sermepa

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

Quitar formulario al confirmar una preautorización (TransactionType=2) #56

Closed elpulpito10 closed 6 years ago

elpulpito10 commented 6 years ago

Hola Eduardo! Ante todo miles de gracias por todo. Funciona genial y estoy más que agradecido. Sólo tengo una duda que espero me podáis responder si es posible. Estoy trabajando con preautorizaciones y sus confirmaciones. Todo funciona genial, excepto que me gustaría que al confirmar la preautorización (tipo de transacción = 2), no apareciera ningún formulario de Redsys diciendo nada, y que tan sólo se confirmara la preautorización y si es correcta que simplemente cargue el "noti_ok.php" para mostrar el mensaje de éxito. ¿Es esto posible? Actualmente, al confirmar la preautorización, me aparece un formulario de Redsys BBVA (en mi caso) donde salen los datos de la transacción y que ha sido exitosa, y si doy a "Continuar" ya me carga el noti_ok.php. Pero no quiero que salga nada del BBVA al confirmar la preautorización y salte directo al noti_ok.php. Espero haberme explicado! (No sé si tiene que ver con el método executeRedirection()??). Mi código:

```
$redsys->setMerchantcode('xxxxxxxx'); //Reemplazar por el código que proporciona el banco
$redsys->setCurrency('978');
$redsys->setTransactiontype("2");
$redsys->setTerminal('1');
$redsys->setMethod('C'); //Solo pago con tarjeta, no mostramos iupay
$redsys->setNotification($ruta."redsys_notificacion.php"); //Url de notificacion

$redsys->setUrlOk($ruta."redsys_noti_ok.php"); //Url OK 
$redsys->setUrlKo($ruta."redsys_noti_ko.php"); //Url KO
$redsys->setVersion('HMAC_SHA256_V1');
$redsys->setTradeName('Masconsultas');
$redsys->setIdentifier(); 
$redsys->setAttributesSubmit('btn_submit', 'btn_id', 'Enviar', 'Display:none');
$redsys->setProductDescription('Compras varias');
$redsys->setEnvironment('test'); //Entorno test
$signature = $redsys->generateMerchantSignature($key);
$redsys->setMerchantSignature($signature);
$redsys->executeRedirection();

                // $form = $redsys->createForm();

} catch (\Sermepa\Tpv\TpvException $e) {

echo $e->getMessage();

}
ssheduardo commented 6 years ago

Eso podría darte más información la propia entidad bancaria si existe algún parámetro que se le pase al banco para que no te muestra la pantalla de confirmación, voy a investigar pero te sugiero contactes con el banco.

Saludos

elpulpito10 commented 6 years ago

Ok. Muchísimas gracias, pensé que era algo que yo hacía mal, ahora ya hay por dónde mirar. Les escribiré y si me entero de algo eficiente lo pondré por aquí por si alguien tiene el mismo problema. Así que esperaré un poco para cerrar este Issue. Gracias de nuevo, me encanta tu trabajo.

ssheduardo commented 6 years ago

Genial, a ver si nos puede orientar en ello el banco.