Open facundocapua opened 1 year ago
@facundocapua Coincido totalmente... creo que deberían haber aumentado el numero de versión principal y advertir de "breaking changes". Estuve con algunos problemas de redondeos de decimales, y cuando revise los commits de la nueva version observe eso y decidi no actualizar. Genere el issue #56
¡¡Genial que hayas advertido al resto!! el problema estaria segun el caso en el manejo de paquetes, la sintaxis de la versión, luego de un "update en composer" pueden llegar a tener este problema si especifican rangos de versiones por ej:
~1.3 que significa: >= 1.3.0.0 y < 2.0.0.0 1.* que significa: >= 1.0.0.0 y < 2.0.0.0
Composer: manejo de versiones por rango
Saludos!
Si, tal cual. Lo más seguro para evitar problemas con el composer upgrade
sería poner directamente la versión exacta a utilizar.
En este caso:
composer require payway-ar/php-sdk-venta-online:1.7.1
Nos encontramos con el mismo inconveniente y vemos que son varios métodos los que cambian en esta versión removiendo este comportamiento del decimal. También notamos extraño que este cambio se contradice con la documentación oficial, que no respete compatibilidades ni cambiaron el major, o como dice Nanod10 implementar un breaking changes.
https://decidirv2.api-docs.io/1.0/transacciones-simples/solicitud-de-token-de-pago-1
Levantamos un ticket interno para comprender este alcance pero aún estamos sin novedades.
Si ya estaban integrados y se actualizan sin hacer pruebas sería un gran problema para el negocio instalar la versión 1.7.2!
Hola @Nanod10 ! Estoy teniendo problemas con el formato de los montos porque en la documentacion https://decidirv2.api-docs.io/1.0/prevencion-de-fraude-by-cybersource/1-vertical-retail para transacciones usando el servicio cybersource indica que se manden con el decimal, pero después el monto de la transacción en si hay que mandarlo sin decimales segun lo ultimo que agregaron.. Hicimos una prueba en produccion y terminó cobrando 10 mil pesos para un monto de 100.. y si sigo la docu ahi el monto de la transaccion se envia con decimales: https://github.com/payway-ar/sdk-php-ventaonline#payment
No se entiende que se tiene que respetar...
Si, tal cual. Lo más seguro para evitar problemas con el
composer upgrade
sería poner directamente la versión exacta a utilizar. En este caso:composer require payway-ar/php-sdk-venta-online:1.7.1
@facundocapua Totalmente especificar la versión exacta para produccion es lo mejor, por suerte es algo que se expone en la documentación, y... quien no cambio eso... no le afecta un composer update
Nos encontramos con el mismo inconveniente y vemos que son varios métodos los que cambian en esta versión removiendo este comportamiento del decimal. También notamos extraño que este cambio se contradice con la documentación oficial, que no respete compatibilidades ni cambiaron el major, o como dice Nanod10 implementar un breaking changes.
https://decidirv2.api-docs.io/1.0/transacciones-simples/solicitud-de-token-de-pago-1
Levantamos un ticket interno para comprender este alcance pero aún estamos sin novedades.
Si ya estaban integrados y se actualizan sin hacer pruebas sería un gran problema para el negocio instalar la versión 1.7.2!
@nicolaspar Genial que lo advertiste también! @facundocapua fue el valiente jaja En tu caso citas la documentación de decidir (la cual creería que se corresponde hasta las versiones 1.5.5 y 1.5.6) Habría que ver cual es la "documentación oficial" realmente, porque parece que hay una nueva Doc y Versión de la API, ya bajo el nombre de PayWay y con este tipo de cosas, la Doc Oficial es "relativa" a la versión que implementes... o algo así podría decirse...
No se entiende que se tiene que respetar...
@eugetiendup intentare ayudar aclarando algunos puntos
No confundas las documentaciones.
En este Repo de Github, se hace referencia al SDK de PHP (los ejemplos se muestran con decimales porque el SDK maneja internamente a través del método "rmDecAmount" el correcto formateo para enviarlo a la API como se requiere)
En estas las Urls decidirv2.api-docs.io v1 y v2 se hace referencia a la API (Los ejemplos no tienen decimales, es para cuando implementas directamente la api con CURL o Guzzle o alguna otra librería HTTP y le pegas directo sin usar el SDK)
Por lo que fui aprendiendo sobre Decidir (ex nombre de payway) y Payway, hay varias documentaciones:
WARNING: SI usas el SDK, hasta la versión 1.5.6 DEBES construir los objetos enviando importes con decimales, ya que el método "rmDecAmount" del SDK se encarga de formatear el importe acorde a los requerimientos de la API. Luego en la versiones siguientes quitaron ese método y esta ocasionando problemas...
En mi caso utilizo el SDK v1.5.6 y seteo los importes con decimales. Pero ademas arregle un bug de error de redondeo en las clases que construyen y formatean los objetos para CyberSource, para eso revisa este issue #56 y la solucion esta en este pull request #55
Hola @Nanod10 ! si, el tema es que el sdk tambien menciona a la api para tener en cuenta codigos de referencia, por eso la mencione.
Pero ya lo solucione poniendo fija la version en el composer. Gracias por responder!
En el último commit que pertenece al release
1.7.2
se eliminan las llamadas a$this->rmDecAmount
que haceamount*100
para deshacerse de los decimales como indica la documentación: https://decidirv2.api-docs.io/1.0/transacciones-simples/ejecucion-del-pago-1Esto genera que todos los pagos se hagan por un 1% del valor real de la transacción. Por ejemplo si quiero cobrar
2000
, el pago se termina haciendo por20.00
.Esto es un error que puede generar pérdidas millonarias.
NO UTILIZAR ESTA VERSIÓN EN PRODUCCIÓN