ssheduardo / sermepa

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

A vueltas con la dichosa URL de pruebas #24

Closed popnoart closed 8 years ago

popnoart commented 8 years ago

Buenas,

he abierto un nuevo issue porque ya me estoy volviendo loca. Ahora no funciona ni la que teníamos de alternativa.

El viernes pasado estuve implementando la clase para otro cliente diferente, pero lo tuve que dejar porque redsys empezó a lanzar error 500, así que lo dejé para cuando terminaran de hacer lo que estuvieran haciendo.

Hoy me he puesto a actualizar la clase con los últimos cambios y no funciona. He vuelto a la versión que tenía la última vez que todo había funcionado, pues nada, error.

Ya desesperada me he vuelto a descargar el ejemplo, lo he subido tal cual, y nada, ni siquiera el de ellos funciona.

Luego he probado con las ul que había encontrado en prestashop o magento y aquí podeis comprobar que no van: http://popnoart.com/redsys/ejemploGeneraPet.php

Eso si, en real funciona sin problemas, pero en pruebas nada.

¿Alguien más con este problema?

eduk2 commented 8 years ago

A mi me pasa igual, funciona en producción pero NO en desarrollo... hay quien dice que la clave de desarrollo no es la correcta para sha256 y quien dice que es por la url de desarrollo que no es la correcta... habrá que llamar a redsys para que lo aclaren

ssheduardo commented 8 years ago

Que gente más chapuza, les escribes y te marean enviando de uno a otro. La demo deja de funcionar, que caos con Redsys, felizmente estamos siguiendo esto en tiempo real.

popnoart commented 8 years ago

Ya les he escrito contando todo el rollo, a ver si alguien responde (y que la respuesta sirva, claro), pero teniendo en cuenta que no han arreglado desde más de un año el fallo del pedido repetido cuando no se pudo realizar el pago, no tengo mucha esperanza....

ssheduardo commented 8 years ago

Espero que lo reparen pronto que la fecha límite se acerca, a menos que lo extiendan.

jzfgo commented 8 years ago

Buenas,

Efectivamente, el entorno de desarrollo (sis-d) ha dejado de funcionar, pero el entorno de pruebas (sis-t) funciona.

Si no conseguís que funcione en entorno de pruebas probablemente es porque Redsys ha hecho un cambio del que no hay documentación por ninguna parte y del cual me enteré mientras se lo comentaba a uno de los técnicos que Banco Sabadell ha puesto para este tema.

Hasta ahora, los datos a utilizar contra el entorno de pruebas (sis-t) eran públicos y comunes para todos, pero ahora hay que utilizar los mismos datos que en producción (sis) a excepción de la clave, que es nueva, específica para pruebas y que tenéis que solicitar a vuestro banco, junto con la nueva clave para producción.

Antes

URL: https://sis-t.redsys.es:25443/sis/realizarPago Código de comercio: 327234688 Terminal: 1 Clave: qwertyasdf0123456789

Ahora

URL: https://sis-t.redsys.es:25443/sis/realizarPago Código de comercio: mismo que en producción Terminal: mismo que en producción Clave: nueva, proporcionada por el banco, específica para entorno de pruebas

Por último, tengo una librería que ya está actualizada y funcionando en producción desde hace unos días. Tiene un ejemplo bastante potente que os puede servir de ayuda para actualizar ésta.

https://github.com/nkm/redsys-virtual-pos

Espero que os sirva de ayuda.

ssheduardo commented 8 years ago

@nkm gracias por la aclaración, la librería la tengo actualizada, el lío solo era con la url de pruebas. Aclarado el tema por tu parte vamos a probar si es así.

popnoart commented 8 years ago

Puff, pues vaya lío han montando a mitad del cambio, con lo que tardan mis clientes en conseguir algo del banco...

ssheduardo commented 8 years ago

Esto va ser un lío enorme para los clientes que tengan montado con redsys.

markitosgv commented 8 years ago

Yo no puedo probar ahora mismo el entorno test ya que tengo todo en producción y vendiendo :D. Cuando alguien lo pueda confirmar se podría actualizar la libreria, proponiendo una key_test y cambiando la url.

popnoart commented 8 years ago

La verdad es que este cambio es una faena, me venía muy bien que el entorno de pruebas fuera público, en fin...

Ya están avisados mis clientes de que tienen que llamar al banco. A ver si consigo la clave pronto y ya os cuento!

ssheduardo commented 8 years ago

@markitosgv el tema de la key_test sería bueno que lo ponga el banco pero que lío madre mía.

popnoart commented 8 years ago

Bueno, la primera noticia es que en el Santander no tienen ni idea de lo que les hablamos y que van a preguntar, y confunden lo que les pedimos primero con la clave del comercio diciendo que nos lo enviaron cuando el alta, y luego con la clave SHA 256. Creo que terminaré haciéndome pasar por mi cliente y llamando a Redsys a ver si cuela.

ssheduardo commented 8 years ago

A casi una semana para el "cambio" y ni enterados los del banco, que chapuza. Yo de ti lo intentaba.

popnoart commented 8 years ago

Ya está, al final ha sido lo mejor, me ha atendido una chica que me ha explicado como va. Lo único malo es que una vez aclarado el lío me dice que me envía un correo donde está todo detallado, y cuando lo abro es la documentación que tiene en la web que es la que está armando el lío porque siguen hablando de la url de pruebas y demás, en fin,...vaya caos, llega a pasar en diciembre y hunden el país :-P

Hay que entrar en https://sis-t.redsys.es:25443/canales/ que es una especie de panel de administración del entorno de pruebas. Y allí hay hacer lo mismo que hicimos en real, tomar nota de la clave SHA 256. Y ya está el resto es como en real, sólo cambiado la clave SHA 256 del panel de pruebas pro la del panel de real, y en teoría ya funcionaría.

Ah, otra cosa, si alguno sois migrados del 4b y para entrar en el panel de administración usabais el usuario PIXXXXX, ahora debéis usar como usuario el código de comercio, rellenando con 0 hasta 9 creo que me ha dicho, más -001 o la terminal correspondiente. En mi caso he tenido que solicitar nueva contraseña porque las que teníamos no valían.

Así que voy a probarlo.

ssheduardo commented 8 years ago

@popnoart se agradece tanta dedicación con el tema, vaya dolores de cabeza vamos a ahorrar a otros. Ya nos comentas que tal las pruebas para ver si pasamos de DEV a MASTER

markitosgv commented 8 years ago

@popnoart muchas gracias por tu dedicación! poned un stick a este issue o lo metemos en un apéndice de la doc de esta libreria no? :D

ssheduardo commented 8 years ago

Estamos trabajando más de redsys sacando fallos, realizando test, etc. etc.

popnoart commented 8 years ago

Tengo unas ganas de quitármelo de encima! Me pilla justo con el inicio de un congreso para uno de los clientes, y vaya gracia como no pudieran pagar con tarjeta!

A ver la URL SI CAMBIA, es como dice @nkm La chica que me atendió me dijo que no, que era la misma que en real, pero no, tiene que ser la de test, así que por ese lado si que está bien la documentación. Resumo:

TEST URL: https://sis-t.redsys.es:25443/sis/realizarPago CLAVE: qwertyasdf0123456789 CLAVE SHA 256: Hay que verla en el panel de administración de la TPV del entorno de pruebas (https://sis-t.redsys.es:25443/canales/) En teoría ya no se puede usar una estándar si no que cada comercio debe buscar la suya.

LIVE URL: https://sis.redsys.es/sis/realizarPago CLAVE: la que os dieran en su día CLAVE SHA 256: Hay que verla en el panel de administración de la TPV del entorno real (https://canales.redsys.es/)

Con esto parece que va bien, de hecho ahora simula la conexión con el banco para la contraseña de cada tarjeta, cosa que antes no lo hacía.

ssheduardo commented 8 years ago

Si es así en setEnviroment elimino other y asigno a test quedaría setEnviroment('test') o setEnviroment('live')

rubensdev commented 8 years ago

En el entorno de TEST el importe me sale sin asignar. Sin embargo, cambiando al entorno REAL sí funciona. He intentado ponerme en contacto con Redsys y sólo parece que cuando se queja uno públicamente en Twitter es cuando hacen amagos de responderte. Ni sé para qué tienen el correo de migracionSHA256@redsys.es, ya he preguntado sobre esto y nada.

Un caso extraño que me está pasando es que tras un cierto periodo, mi usuario y mi contraseña no me son válidos. He intentado recuperar la contraseña, pero no hay forma, no me llega ningún correo (ni tampoco respuesta por parte de ningún correo de redsys).

Espero que se resuelva este problema lo antes posible.

eduk2 commented 8 years ago

Hola Rubens,

a mi me pasaba al principio lo mismo pero era tema de la key que hay que obtenerla para sha-256 y obtenerla desde el entono de desarrollo https://sis-t.redsys.es:25443/canales/ Antes siempre era la misma en desarrollo para todo el mundo, pero ahora cada uno tiene una propia.

El 12 de noviembre de 2015, 12:09, Rubens García notifications@github.com escribió:

En el entorno de TEST el importe me sale sin asignar. Sin embargo, cambiando al entorno REAL sí funciona. He intentado ponerme en contacto con Redsys y sólo parece que cuando se queja uno públicamente en Twitter es cuando hacen amagos de responderte. Ni sé para qué tienen el correo de migracionSHA256@redsys.es, ya he preguntado sobre esto y nada.

Un caso extraño que me está pasando es que tras un cierto periodo, mi usuario y mi contraseña no me son válidos. He intentado recuperar la contraseña, pero no hay forma, no me llega ningún correo (ni tampoco respuesta por parte de ningún correo de redsys).

Espero que se resuelva este problema lo antes posible.

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156087228.

rubensdev commented 8 years ago

Sí, lo curioso es que la clave que me sale en desarrollo es la misma que en real :(....

ssheduardo commented 8 years ago

Bienvenido al barco, a mi test ya me esta funcionando con los datos que comenta @eduk2 (para real y test son distintos.)

rubensdev commented 8 years ago

Volveré a echarle un vistazo (cuando pueda volver al entorno de test, xD). Gracias @eduk2 @ssheduardo :-)

popnoart commented 8 years ago

Creo que nos están dando gato por liebre (más de lo que nos han dado hasta ahora). Yo estoy haciendo la implementación en dos clientes y se supone que la clave SHA 256 del entorno de pruebas es diferente para cada cliente, no? Pues mis dos clientes tienen la misma. Así que me da a mi que sigue siendo la misma para todos.

La vuestra empieza por sq7 y termina en gJ7 ?

eduk2 commented 8 years ago

Para más señas, la mía de test: sq7HjrUOBfK......6ILgskD5srU870gJ7

El 12 de noviembre de 2015, 12:44, Paula I. Portilla Lejarza < notifications@github.com> escribió:

Creo que nos están dando gato por liebre (más de lo que nos han dado hasta ahora). Yo estoy haciendo la implementación en dos clientes y se supone que la clave SHA 256 del entorno de pruebas es diferente para cada cliente, no? Pues mis dos clientes tienen la misma. Así que me da a mi que sigue siendo la misma para todos.

La vuestra empieza por sq7 y termina en gJ7 ?

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156094587.

rubensdev commented 8 years ago

En mi caso no es la misma, pero sí es la misma que la mía en REAL.

ssheduardo commented 8 years ago

Jajajaja me parto con Redsys

popnoart commented 8 years ago

@rubensdev eso si que no me pasa, son distintas en mis clientes. ¿Seguro que estas entrando en los dos sitios distintos? Son idénticos y salvo por la url yo no los distingo! TEST: https://sis-t.redsys.es:25443/canales/ LIVE: https://canales.redsys.es/

Y para uno de los clientes he tenido que volver a llamar porque ni siquiera estaba dado de alta en el sistema para pruebas y no podía entrar a panel de pruebas.

Pues ya relleno yo lo que queda porque es la misma para todos: sq7HjrUOBfKmC576ILgskD5srU870gJ7

rubensdev commented 8 years ago

@popnoart gracias por la clave :-) , voy a probar con ella a ver si no tengo el problema del importe y puedo hacer algo, jejeje. Volveré a comprobarlo cuando me llegue el correo de recuperación de contraseña...

ssheduardo commented 8 years ago

Yo estoy resolviendo errores en el método check para subir unos cambios.

ssheduardo commented 8 years ago

Al parecer las claves para test son públicas, así que actualizare README con dicha información: sq7HjrUOBfK......6ILgskD5srU870gJ7

eduk2 commented 8 years ago

Por cierto, con respecto a lo check o a validar pedidos... los datos de $parameters['Ds_MerchantData'] llevan todos codificados como si fueran una url (cosa que antes no pasaba)... y al menos yo los tengo que pasar por urldecode() para tratarlos correctamente.

2015-11-12 13:07 GMT+00:00 Eduardo notifications@github.com:

Al parecer las claves para test son públicas, así que actualizare README con dicha información: sq7HjrUOBfK......6ILgskD5srU870gJ7

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156098491.

popnoart commented 8 years ago

Yo doy por actualizados a mis clientes.

Os comento que con uno he tenido más problemas, su pasarela funcionaba todavía como la 4b, es decir, durante la supuesta migración de 4b a Redsys no los migraron correctamente, total que en test funcionaba y en real no. Tras volver a llamar me dicen que hay que iniciar la migración, hacer las pruebas de una denegada y otra aprobada (por cierto, con el fuc real, no el de test que te lo echan para atrás), y volver a llamar para que hagan efectiva la migración.

ssheduardo commented 8 years ago

@popnoart vaya lío la verdad, pero bueno ya esta solucionado. Acabo de actualizar el README con el ejemplo de check ya probado y validado. Sino hay nada más creo que pasare a MASTER.

ssheduardo commented 8 years ago

@eduk2 prueba con el ejemplo que tengo en README a mi me ha funcionado.

eduk2 commented 8 years ago

@eduk2 prueba con el ejemplo que tengo en README a mi me ha funcionado. sí, con ese he probado... y funcionar funciona... pero llega con %20letras%45.... cosas así... le paso un urldecode() a todo el array y ya lo tengo todo bien. A lo mejor depende de la codificación del fichero, del servidor o algo así y no a todo el mundo le ocurre... pero me da que es por la forma de enviar ahora los parámetros a la url de notificación... que ahí algo habrá cambiado por parte de redsys.

El 12 de noviembre de 2015, 14:28, Eduardo notifications@github.com escribió:

@eduk2 https://github.com/eduk2 prueba con el ejemplo que tengo en README a mi me ha funcionado.

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156115779.

ssheduardo commented 8 years ago

Si me envías el ejemplo que usas lo pruebo y te digo (pasame la captura de pantalla donde sale el error)

eduk2 commented 8 years ago

Yo realmente no lo considero un error, solo tema de codificación de la información que se recibe. Ejemplo de como lo recibía con el código tal cual: http://prntscr.com/91xy4c Y ya después con el urldecode() se ve así: http://prntscr.com/91xywi

Ten en cuenta que es con signos tipo @, tildes, etc. Todo lo demás sí se veía bien.

2015-11-12 14:42 GMT+00:00 Eduardo notifications@github.com:

Si me envías el ejemplo que usas lo pruebo y te digo (pasame la captura de pantalla donde sale el error)

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156120373.

ssheduardo commented 8 years ago

¿Según veo las capturas en un email donde te llega? Donde recoges esos datos si eso para agregar urldecode y listo.

eduk2 commented 8 years ago

Sí, llega a un email... simplemente haciendo pruebas para ver que recibo la información que envío con $redsys->setMerchantData();

La llamada que uso es algo así: $redsys->setMerchantData('email@email.com_10_123456_Descripción del pedido');

y para recibir la información algo así:

$datos = $parameters['DsMerchantData']; list($email, $id, $id2, $descripcion) = explode("", $datos);

if ($redsys->check($key, $_POST) && $DsResponse == 0) { mail(miEmail@gmail.com', 'Order OK', urldecode($email) . "\n\n". $id. "\n\n". $id2. "\n\n". urldecode($descripcion)); } else { mail('miEmail@gmail.com', 'Order KO', urldecode($email) . "\n\n". $id. "\n\n". $id2. "\n\n". urldecode($descripcion)); }

Tampoco se puede añadir urldecode() tal cual, porque lo que devuelve $parameters['Ds_MerchantData'] es un array... hay por ahí funciones o formas de pasárselo a todos los elementos del array... pero bueno en mi caso y para el ejemplo solo me hacía falta en el email y en la descripción ya que lo demás son números

Quizás lo ideal es no pasar mucha información con setMerchantData... y guardar datos en la llamada en la base de datos con algún identificador... pero para algunos casos es más rápido y cómodo hacerlo así tal cual y extraer de ahí lo que necesites sin tener que haberlo almacenado en ningún sitio.

2015-11-12 14:51 GMT+00:00 Eduardo notifications@github.com:

¿Según veo las capturas en un email donde te llega? Donde recoges esos datos si eso para agregar urldecode y listo.

— Reply to this email directly or view it on GitHub https://github.com/ssheduardo/sermepa/issues/24#issuecomment-156125738.

ssheduardo commented 8 years ago

Te he respondido a tu email que sale en github. Sino queda más cosa cierro el tema y el viernes paso a Master.

lmoisesrojas commented 8 years ago

Buenas chicos, Lamento que este post este cerrado, pero por desgracia aquí fue que vi la respuestas que he buscado desde hace tiempo y la vi ahora. Esto usando la rutina tpv que vi en github de ssheduardo, pero me da un erro en la parte de notificacion try{ $redsys = new Sermepa\Tpv\Tpv(); $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7';

    $parameters = $redsys->getMerchantParameters($_POST["Ds_MerchantParameters"]);
    $DsResponse = $parameters["Ds_Response"];
    $DsResponse += 0;
    if ($redsys->check($key, $_POST) && $DsResponse <= 99) {
        //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
        echo "Posted it";
    } else {
        //acciones a realizar si ha sido erroneo
        echo "Sorry!";
    }
}
catch(Exception $e){
    echo $e->getMessage();
}

error Notice: Undefined index: Ds_MerchantParameters in C:\xampp\htdocs\sermepa\tpvnotificacion.php on line 8

Soy nuevo en PHP y solo deseo utilizar un programa para TPV

Excusemen por postear en un post cerrado, pero es mi única solución.

p.d: La versión del programa es la última que vi en github