Varios clientes nos han reportado que sin explicación aparente, a partir de determinado momento, algunas o todas las operaciones que se intentan realizar mediante el TPV virtual de BBVA fallan.
Cuando los usuarios de la tienda virtual van a realizar el pago por tarjeta de crédito usando la pasarela del BBVA se encuentran con que una vez introducido el número de tarjeta de crédito se les redirige a la página de «error en el pago» de la tienda virtual.
Hemos visto este comportamiento en los módulos para todas las plataformas con las que trabajamos Magento, VirtueMart, OpenCart, Prestashop, Tomatocart, OsCommerce o Zencart y el denominador común es el código de error 226.
Al redirigir al usuario a la página de error en la URL de esta se ve el XML de respuesta del BBVA que entre otra información nos deja ver …<coderror>226<%2Fcoderror><deserror>Operacion+No+Procesada+%2803010000015%29<%2Fdeserror>…
Si consultamos la documentación de BBVA y buscamos el código de error 226, la causa que se indica no es que nos ayude mucho a identificar el verdadero problema: «Error en la Peticion del Comercio: Los datos deL IMPORTE en el Pago y Prepago no coinciden»
¿A que se debe entonces esta no coincidencia? En los casos que hemos analizado lo que ocurría es que el identificador de transacción que se estaba enviando en la operaciones que fallaban coincidía con el identificador de alguna otra transacción que se había efectuado con anterioridad y con diferente importe. El identificador de transacción es único y en cada tpv virtual contratado no se debería de repetir nunca.
¿Por qué se repiten los identificadores de transacción? En los casos analizados hemos detectado dos razones por las cuales se llega a usar el mismo identificador de transacción para operaciones idferentes:
- En el módulo para osCommerce/Zencart esto puede ocurrir si se desinstala el módulo después de haber realizado operaciones y se vuelve a reinstalar. Al volver a instalar el contador de transacciones vuelve a empezar de cero y por lo tanto pueden repetirse los identificadores de transacciones ya utilizados. En los módulos para otras plataformas puede ocurrir lo mismo si se reinicia la secuencia de números de pedidos, ya sea porque se reinstala la tienda o porque se restaure desde un backup antiguo.
- En cualquiera de las plataformas puede ocurrirnos este problema si usamos el mismo código de comercio en varias tiendas, cada tienda lleva su secuencia de números de pedido y cabe la posibilidad de que coincidan los números de una con los de la otra. Esto no significa que no se pueda usar el mismo tpv virtual contratado en diferentes tiendas sino que habrá que prever esta situación y hacer que mientras lo números de pedido de una empiecen en cero los de la otra empiecen en 1000000 o alguna solución similar.
La pasarela me devuelve:
«Pago no completado – Pago pago no completado Lo sentimos. Su pago no se ha completado. Puede intentarlo de nuevo o escoger otro medio de pago…» aun y que BBVA indica diferente número de transacción y el estado de cada una de ellas es aceptada.
¿A que es debido esto?
Gracias.
solucion: desactivar autenticación del htaccess para que bbva pueda devolver la respuesta.
muchas gracias.
saludos,
c.
Perdona Carles, como se desactiva esa autenticación del htaccess?
Es un prestashop 1.6 con pasarela de BBVA