Closed manuweb closed 7 months ago
Esta solución la propuso el compañero @alphp
https://github.com/ssheduardo/sermepa/issues/93#issuecomment-1866079688
¿Pero que error te esta dando?
Esta solución la propuso el compañero @alphp
https://github.com/ssheduardo/sermepa/issues/93#issuecomment-1866079688
¿Pero que error te esta dando?
@ssheduardo muchas gracias por contestar.
Precisamente es el código de @alphp el que estoy usando.
Me da error en $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);
Puse para ver que pasaba un print_r($response); y la consola del navegador parecía volverse loca.
Para un pago normal me funciona correctamente.
¿Podría ser algo que el banco no tenga configurado para devoluciones?, porque desde https://canales.redsys.es si puedo hacer la devolución manualmente.
Gracias.
Entiendo que la devolución lo estas probando primero en el entorno de desarrollo?. Intenta guardar el print_r en algún archivo.
Entiendo que la devolución lo estas probando primero en el entorno de desarrollo?. Intenta guardar el print_r en algún archivo.
Pues es un entorno de desarrollo pero lo estoy intentado en 'live' porque ya estoy haciendo pruebas para real y tengo el terminal del banco en modo real.
Voy a intentar guardar el print_r para ver que guarda.
Gracias
Me da error en $parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);
Creo recordar que una vez realizada una devolución si intentabas otra con el mismo número de orden te daba un error y no devolvía en response el Ds_MerchantParameters. Hablo de memoria y con las fiestas no me fiaría demasiado. Puedes guardar la respuesta de la petición para ver qué está pasando realmente añadiendo dos líneas, una para guardar la respuesta en "raw" y otra "decodificada":
$response = $redsys->send();
file_put_contents('response_raw.json', $response);
$response = json_decode($response, true);
file_put_contents('response_decoded.txt', print_r($response, true));
$parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);
Acabo de ver el error, el entorno para la devolución tiene que ser restLive, no live:
$redsys->setEnvironment('restLive');
Acabo de ver el error, el entorno para la devolución tiene que ser restLive, no live:
$redsys->setEnvironment('restLive');
Genial, solo era eso. Si eso tratare de agregar ese ejemplo al README.
Acabo de ver el error, el entorno para la devolución tiene que ser restLive, no live:
$redsys->setEnvironment('restLive');
¡¡Pues era eso, logrado la devolución!!
$redsys->setEnvironment('restLive');
Muchas gracias @alphp y @ssheduardo
Buenos días y Feliz Año!!
Estoy intentando hacer una devolución usando el siguiente código:
No me funciona y me está volviendo loco.
¿Alguna forma de hacerlo distinta a esta?
Gracias.