eusonlito / ceca-tpv Goto Github PK
View Code? Open in Web Editor NEWGenera los formularios para la integración de la pasarela de pago de sistemas CECA
Genera los formularios para la integración de la pasarela de pago de sistemas CECA
Hay un error importante en la librería, en la función getAmount()
, puesto que para importes con decimales solo funciona correctamente si se pasa como parámetro un número con dos decimales exactos.
En concreto en la casuística que contempla que el parámetro recibido tenga una coma o un punto:
if (preg_match('/[\.,]/', $amount)) {
return str_replace(array('.', ','), '', $amount);
}
En el caso de que el parámetro sea un número de un solo decimal (por ejemplo 1.1
), esta condición del if elimina el punto y devuelve 11
(0.11€), cuando debería de devolver 110
, lo cual provoca que se cobre un importe incorrecto.
Por otro lado, si se enviase un número con más de dos decimales (por ejemplo 1.1234
), debería devolver 112, o como mucho 112.34. pero en realidad devuelve 11234 lo cual equivale a 112.34€.
Personalmente no entiendo demasiado qué se pretende con la condición del pregmatch, puesto que incluso si se pasa como parámetro la cadena "1.1"
al hacer la multiplicación por 100 php devolverá 110
correctamente.
¿Se podría eliminar esa casuística?
I created a new repo based on this, and I am doing some improvements (like support sha256 algoritm and the option to get credit card number form the site...). I made little fixes too..
So, I should create a fork and make a pull request to this project when I finish the evolutions, or is this project abandoned?
Hola @eusonlito ,
Veo que has añadido correctamente la nueva URL de entorno test en la clase TPV, sin emabrgo no veo que haya nigun nuevo tag con los cambios.
private $environments = array(
'test' => 'https://tpv.ceca.es/tpvweb/tpv/compra.action',
'real' => 'https://pgw.ceca.es/cgi-bin/tpv'
);
Tag 1.2
https://github.com/eusonlito/Ceca-TPV/blob/v1.2.0/src/Ceca/Tpv/Tpv.php
Master
https://github.com/eusonlito/Ceca-TPV/blob/master/src/Ceca/Tpv/Tpv.php
Comprobando la documentación de ceca creo que habría que cambiar la URL del entorno real.
https://comercios.ceca.es/docs_constpv/img/manual_comercios.pdf
El TPV de Cecabank consta de dos entornos en funcionamiento, Uno para pruebas y otro para
producción. A continuación mostramos sus direcciones:
https://tpv.ceca.es/tpvweb/tpv/compra.action ENTORNO DE DESARROLLO
https://pgw.ceca.es/tpvweb/tpv/compra.action ENTORNO DE PRODUCCIÓN
Estos serán los únicos valores válidos en el campo ACTION de los formularios descritos
private $environments = array(
'test' => 'https://tpv.ceca.es/tpvweb/tpv/compra.action',
'real' => 'https://pgw.ceca.es/tpvweb/tpv/compra.action'
);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.