Jump to content

Recommended Posts

Buenos dias, tengo un problema con las pruebas de redsys, estoy haciendo pruebas en real.

El pago con mi tarjeta ha sido correcto, el problema viene cuando hago un pago con la tarjeta denegada, parece que lo deniega correctamente pero desde redsys me comunican que aparece un error 500:

Resultado operación

0180

Cod. respuesta servidor

Error (-1 Server returned HTTP response code: 500 for URL: XXXXXX

No veo donde puede estar el error.

EDITO: Me acabo de dar cuenta que el erro que me da es: Tarjeta ajena al servicio, pensaba que era tema de redsys pero ellos me dicen que no.

Edited by Iagoeh (see edit history)

Share this post


Link to post
Share on other sites

En el módulo de Redsys puedes asignarle una URL para cuando una petición de pago finaliza de forma incorrecta. Yo lo tengo asignado para que devuelva a una página personalizada de error en el pago.

Para ello, en primer lugar he creado una página personalizada de error:

error-pago.thumb.jpg.9465467953bd6f81304202d97eb93e6b.jpg

Luego, en el módulo de Redsys he realizado unos cambios en este archivo /modules/redsysoficial/redsysoficial.php. Concretamente he ido a la línea 403, y este bloque:

// URL de Respuesta Online
if (empty ( $_SERVER ['HTTPS'] )) {
	$protocolo = 'http://';
	$urltienda = $protocolo . $_SERVER ['HTTP_HOST'] . __PS_BASE_URI__ . 'modules/redsysoficial/validation.php';
} else {
	$protocolo = 'https://';
	$urltienda = $protocolo . $_SERVER ['HTTP_HOST'] . __PS_BASE_URI__ . 'modules/redsysoficial/validation.php';
}

... lo he modificado así, añadiendo una variable $urlerror:

// URL de Respuesta Online
if (empty ( $_SERVER ['HTTPS'] )) {
	$protocolo = 'http://';
	$urltienda = $protocolo . $_SERVER ['HTTP_HOST'] . __PS_BASE_URI__ . 'modules/redsysoficial/validation.php';
} else {
	$protocolo = 'https://';
	$urltienda = $protocolo . $_SERVER ['HTTP_HOST'] . __PS_BASE_URI__ . 'modules/redsysoficial/validation.php';
}
/* Modificado : Añadida url error */
$urlerror = $protocolo . $_SERVER ['HTTP_HOST'] . __PS_BASE_URI__ . 'content/15-error-en-el-pago';

Evidentemente el "content/15-error-en-el-pago" se debe cambiar por la página a la que quieras redirigir cuando haya un error en el pago. Puede ser una página personalizada, o puedes devolver a la página de checkout (en ese caso sería "/pedido", o la URL amigable que tenga tu checkout).

Y luego en la línea 480, donde dice :

$miObj->setParameter ( "DS_MERCHANT_URLKO", $urltienda );

... cambiarlo por:

$miObj->setParameter ( "DS_MERCHANT_URLKO", $urlerror );

Eso es todo, con eso se debería solucionar tu problema.

Edited by Prestafan33 (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More