-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Propuesta para la siguiente release v2 #93
Comments
Toda ayuda de mejora es bienvenida. |
Perfecto, empezaré a trabajar en la PR. Mientras tanto, podrías publicar el tag v1.5.0 con los últimos cambios en master? Saludos. |
El último cambio que se hizo por un PR fue el de [hash_equals()], si eso sería pasar a las versión 1.4.5 |
Perfecto. Si lo publicas como v1.4.5 está bien. |
Te he dejado comentarios en el PR, por cierto voy a subir una nueva versión para el tema del insite que me han dado feedback Lo digo para actualizar lo que se tiene hasta ahora y aprovechar a los que usan la versión 1.x |
He creado un PR #96 con una propuesta para las constantes. |
@alphp el compañero @rogervila esta trabajando en la v2 para pillar 8.1.0 como mínimo, tal vez tocaría esperar a que acabe para ir agregando más cosas. |
@ssheduardo son nuevas clases en archivos independientes porque de esta forma se pueden integrar sin problemas en ambas ramas. |
@alphp cierto, no me había fijado que era el TvpTest donde estabas realizando estos cambios. |
@ssheduardo Creo que eliminaré esos cambios del TpvTest y crearé un nuevo test exclusivo para las clases de constantes. |
He creado una issue #97 para comentar ahí los temas de las constantes. |
Creo que sería buena idea añadir métodos REST para devoluciones y anulaciones de pre-autorizaciones. |
Si, hay muchas cosas que podemos agregar. |
Yo tengo acceso a un entorno de pruebas. ¿Cómo te parece que nos organicemos? |
Claro, el tema Rest va venir genial la verdad para las pruebas y todo, en la clase TPV esta la url a Rest si no me equivoco. |
Me sonaba que en la documentación había datos de un entorno de pruebas genérico, sin acceso al panel de administración pero funcional para simular pagos: Acabo de probarlos y funciona estupendamente: Datos de prueba genéricosSe proporcionan unos datos genéricos de prueba para la realización de pruebas. Para obtener los datos específicos de su comercio, deberá contactar con su entidad bancaria.
NOTA: Si se solicita un código de autenticación, introducir 123456. |
Para hacer la redirección si funciona esos datos de pruebas pero ya ir a más ya no vale, por ejemplo Insite. |
En principio los mismos datos sirven para REST y redirección. |
luego lo probaré entonces. |
Acabo de hacer una prueba de una compra con redirección y la devolución con REST mediante la v1 y el entorno de pruebas genérico: PERFECTO. |
si podemos documentarlo, aunque es una chorrada pero al resto le puedo servir. |
Este es el código de la devolución, obviamente el número de orden (setOrder) y la cantidad (setAmount) se corresponden con una compra anterior: $key = 'sq7HjrUOBfKmC576ILgskD5srU870gJ7'; // Sustituir por la key real para producción
$redsys = new Tpv();
$redsys->setAmount(1.010);
$redsys->setOrder('A1703155014');
$redsys->setMerchantcode('999008881'); // Sustituir por el Merchantcode real para producción
$redsys->setCurrency('978');
$redsys->setTransactiontype('3');
$redsys->setTerminal('1');
$redsys->setEnvironment('restTest'); //Entorno test, sustituir por restLive para producción
$signature = $redsys->generateMerchantSignature($key);
$redsys->setMerchantSignature($signature);
try {
$response = $redsys->send();
$response = json_decode($response, true);
$parameters = $redsys->getMerchantParameters($response['Ds_MerchantParameters']);
$DsResponse = $parameters['Ds_Response'] ?? 99999999999;
$DsResponse += 0;
if ($redsys->check($key, $response) and ($DsResponse <= 99 or $DsResponse == 900 or $DsResponse == 400)) {
//Si es todo correcto ya podemos hacer lo que necesitamos, para este ejemplo solo mostramos los datos.
print_r($parameters);
} else {
//acciones a realizar si ha sido erroneo
}
} catch (Exception $e) {
echo $e;
} Es importante tener en cuenta que al ser una devolución el código de respuesta que nos indica que la operación ha sido correcta es distinto:
Actualizado 2024-01-04: Notas aclaratorias para indicar que el entorno de producción debe ser "restLive". |
@alphp muchas gracias por el ejemplo de devolución. En la V2 se usaran Enums para todo así que el código quedará más claro. |
Hola,
Propongo trabajar en la siguiente release (V2), incluyendo los siguientes cambios:
@ssheduardo si te parece bien puedo empezar a trabajar en una PR.
Saludos.
The text was updated successfully, but these errors were encountered: