transbankdevelopers / transbank-plugin-magento2-webpay-rest Goto Github PK
View Code? Open in Web Editor NEWPlugin Magento 2 using Transbank REST API
License: BSD 3-Clause "New" or "Revised" License
Plugin Magento 2 using Transbank REST API
License: BSD 3-Clause "New" or "Revised" License
Describe el bug
Una descripción concisa sobre el bug.
Para reproducir
Comportamiento observado
Describe de forma concisa lo que observaste siguiendo los pasos para reproducir el error.
Comportamiento esperado
Una explicación concisa y clara de qué es lo que esperas que ocurra.
Capturas de pantalla
Si aplica, agrega aquí capturas de pantalla que ayuden a explicar tu problema.
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.
The plugin change the standard layout of checkout to "1column" layout, as results in checkout is added "header-wrapper" and "footer-container".
Para reproducir
Comportamiento observado
The layout of checkout page is changed, header and footer appears.
Comportamiento esperado
The layout of checkout page should not change.
Capturas de pantalla
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Please check view/adminhtml/layout/adminhtml_system_config_edit.xml in line 2:
Thanks a lot
El modulo de magento 2 de wepay no genera invoices al completar los pagos, esto puede traer problemas. ¿Es adrede?
Saludos
Al llegar al checkout se muestra el mensaje : "Transbank Webpay" como etiqueta de tutulo del metodo de pago.
Deberia mostrar la etiqueta configurada en Store >Configuration > Sales > Payment Methods > Webpay > Payment Title
Seteado en la configuracion aca:
Pero no la utiliza en el template de frontend porque en el js de renderizacion de metodo de pago usa una etiqueta por defecto:
Espero lo puedan solucionar,
Gracias y Saludos
Describe el bug
Cuando lnstalo el Plugin con el composer para Magento 2.4.4 arroja el siguiente error:
magento/product-community-edition is locked to version 2.4.4 and an update of this package was not requested.
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Por favor me pueden comentar cual sería el problema principal o si lo pueden probar con Magento 2.4.4 (Versión Luma)
Muchas gracias
El modulo actualmente toma la moneda base de la plataforma e ignora la moneda del store_view (logicamente siempre hablando del peso chileno)
Caso:
Plataforma con moneda base dolar
Monedas permitidas: Dolar americano y Peso chileno
Website 1 ->Store_View->Global: con moneda base dolar y moneda permitida dolar americano (Paypal)
Website 2 ->Store_View->Chile: con moneda base peso chileno y moneda permitida peso chileno (WebPay)
Configuracion del Website->Store_view->Chile:
Escenario:
Solicitud:
Luego de varios problemas para instalar el módulo (no creaba las tablas en la base de datos), logré instalarlo, pero no veo opciones en el panel de administración en "Payment Methods" Aparecen los nativos de Magento y alguno adicional, pero no Transbank.
La moneda del website es CLP, y no tengo ningún error en los logs.
Las instrucciones que seguí son las que figuran en:
https://www.transbankdevelopers.cl/plugin/magento/#
Versiones (por favor agrega aquí la siguiente información):
Multiwebsite (distintos países en cada website.), la moneda del website es CLP.
Saludos
Describe el bug
Al instalar el plugin de transbank se desajusta el estilo del panel de configuracion. El error se reproduce con instalacion limpia de magento 2.3.6-p1 y plantilla por defecto "Luma"
Para reproducir
1.- Al instalar el plugin mediante #composer require transbank/webpay-magento2-rest
2.- Ir al panel de administracion de magento
3.- Ir a por ejemplo store>configuration>general>general>
Comportamiento observado
Comportamiento esperado
Una explicación concisa y clara de qué es lo que esperas que ocurra.
Versiones (por favor agrega aquí la siguiente información):
Describe el bug
Una descripción concisa sobre el bug.
Para reproducir
Comportamiento observado
Describe de forma concisa lo que observaste siguiendo los pasos para reproducir el error.
Comportamiento esperado
Una explicación concisa y clara de qué es lo que esperas que ocurra.
Capturas de pantalla
Si aplica, agrega aquí capturas de pantalla que ayuden a explicar tu problema.
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.
The plugin will show exception after clean install
The plugin wont show after clean install and composer update
command
PHP 7.4.26
Magento 2.4.3-p1
Zend Engine v3.4.0
Para reproducir
Get a fresh Magento installation
Use standard Luma or Blank theme
Install the transbank plugin
Comportamiento observado
The plugin will output exception or wont show after entering Stores/Configuration/Sales/Payment Methods
Comportamiento esperado
The plugin should show
Solution / work around
Installing another extension will make the plugin to show
Describe el bug
En ambiente de pruebas de una instalación limpia de Magento 2.4.2, el sitio se cae al volver de una transacción rechazada, a pesar de que se crea el registro en el log:
Dec 1, 2023 12:31:52 PM Canceled Customer Not Notified
{"vci":"TSY","status":"FAILED","responseCode":-1,"amount":100005,"authorizationCode":"000000","paymentTypeCode":"VD","accountingDate":"1201","installmentsNumber":0,"installmentsAmount":null,"sessionId":"1","buyOrder":"000000001","cardNumber":"3829","cardDetail":{"card_number":"3829"},"transactionDate":"2023-12-01T15:31:14.511Z","balance":null}
Para reproducir
Comportamiento observado
El sitio se cae y arroja el siguiente error:
TypeError: Argument 1 passed to Transbank\Webpay\Controller\Transaction\CommitWebpayM22::getRejectMessage() must be of the type array, object given, called in /var/www/test.domain.com/vendor/transbank/webpay-magento2-rest/Controller/Transaction/CommitWebpayM22.php on line 137 and defined in /var/www/test.domain.com/vendor/transbank/webpay-magento2-rest/Controller/Transaction/CommitWebpayM22.php:307 Stack trace: #0 /var/www/test.domain.com/vendor/transbank/webpay-magento2-rest/Controller/Transaction/CommitWebpayM22.php(137): Transbank\Webpay\Controller\Transaction\CommitWebpayM22->getRejectMessage() #1 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(58): Transbank\Webpay\Controller\Transaction\CommitWebpayM22->execute() #2 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(138): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->___callParent() #3 /var/www/test.domain.com/vendor/magento/framework/App/Action/Plugin/ActionFlagNoDispatchPlugin.php(51): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->Magento\Framework\Interception{closure}() #4 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Framework\App\Action\Plugin\ActionFlagNoDispatchPlugin->aroundExecute() #5 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(153): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->Magento\Framework\Interception{closure}() #6 /var/www/test.domain.com/generated/code/Transbank/Webpay/Controller/Transaction/CommitWebpay/Interceptor.php(41): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->___callPlugins() #7 /var/www/test.domain.com/vendor/magento/framework/App/Action/Action.php(111): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->execute() #8 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Action\Action->dispatch() #9 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(138): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->___callParent() #10 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(153): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->Magento\Framework\Interception{closure}() #11 /var/www/test.domain.com/generated/code/Transbank/Webpay/Controller/Transaction/CommitWebpay/Interceptor.php(50): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->___callPlugins() #12 /var/www/test.domain.com/vendor/magento/framework/App/FrontController.php(186): Transbank\Webpay\Controller\Transaction\CommitWebpay\Interceptor->dispatch() #13 /var/www/test.domain.com/vendor/magento/framework/App/FrontController.php(118): Magento\Framework\App\FrontController->processRequest() #14 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch() #15 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent() #16 /var/www/test.domain.com/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(99): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() #17 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch() #18 /var/www/test.domain.com/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(75): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() #19 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch() #20 /var/www/test.domain.com/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}() #21 /var/www/test.domain.com/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins() #22 /var/www/test.domain.com/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch() #23 /var/www/test.domain.com/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch() #24 /var/www/test.domain.com/vendor/magento/framework/App/Bootstrap.php(263): Magento\Framework\App\Http\Interceptor->launch() #25 /var/www/test.domain.com/pub/index.php(29): Magento\Framework\App\Bootstrap->run() #26 {main}
Comportamiento esperado
Debería mostrar un mensaje al usuario de que la transacción se rechazó por X motivo.
Capturas de pantalla
N/A
Versiones de software
ubuntu 22.04.3 - php7.4 - mysql 8.0.35 - elasticsearch 7.6.0 - composer 1.10.17 - magento 2.4.2 - Plugin Transbank 2.1.5
Contexto adicional
El sitio está configurado con certificado SSL instalado usando Certbot. Las transacciones aceptadas no generan error.
Al culminar una compra te redirige al carrito vacío y en los logs aparece el siguiente error:
"exception":"[object] (Exception(code: 0): Deprecated Functionality: Creation of dynamic property Transbank\\Webpay\\Observer\\EmailObserver::$_current_order is deprecated in /app/vxulksythc5nk_stg/vendor/transbank/webpay-magento2-rest/Observer/EmailObserver.php on line 16 at /app/vxulksythc5nk_stg/vendor/magento/framework/App/ErrorHandler.php:62)"} []
Describe el bug
Una descripción concisa sobre el bug.
Para reproducir
Comportamiento observado
Describe de forma concisa lo que observaste siguiendo los pasos para reproducir el error.
Comportamiento esperado
Una explicación concisa y clara de qué es lo que esperas que ocurra.
Capturas de pantalla
Si aplica, agrega aquí capturas de pantalla que ayuden a explicar tu problema.
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.
Describe el bug
Si se realiza una compra, y en la pasarela de pago se hace clic repetidas veces en el botón para retroceder ("Anular compra"), la orden en Magento recibirá múltiples notificaciones de orden cancelada de parte de Transbank. Estas múltiples notificaciones de orden cancelada provocarán también que se descuadre el stock vendible de los productos que estaban en el carrito de la orden.
Ejemplo:
-Agrego 1 unidad de un producto al carrito, y voy a la pasarela de pago de Transbank. Se crea el pedido que queda esperando confirmación de pago, y se crea una reserva por 1 unidad del producto. El stock vendible baja en 1 unidad debido a esa reserva.
-En la pasarela de pago hago clic N veces en el botón Retroceder (ej. 10 veces).
Para reproducir
Comportamiento observado
La orden aparece cancelada, pero tiene repetidos registros de orden cancelada (notificaciones de parte del plugin del medio de pago). Al revisar en base de datos de Magento en la tabla de reservas (inventory_reservation), hay repetidos registros que cancelan la reserva del producto. Esto descuadra las unidades en reserva en la BD Magento y por ende descuadra el stock vendible del producto en el carrito.
Comportamiento esperado
La orden debería aparecer cancelada con 1 solo registro de orden cancelada desde el medio de pago. Un solo registro de anulación de la reserva en la tabla inventory_reservation. Y por ende el stock "volvería" a la misma condición anterior a la compra.
Capturas de pantalla
Pedido con múltiples registros de cancelación:
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.
Error se presenta el entrar al modulo en sesion de administrador store>configuration>sales>payment methods (aparece este error en pantalla) y clientes no pueden finalizar la compra.
Fatal error: Uncaught Error: Call to undefined method Transbank\Webpay\Options::defaultConfig() in /home/user/public_html/vendor/transbank/webpay-magento2-rest/Model/HealthCheck.php:21 Stack trace: #0 /home/user/public_html/vendor/transbank/webpay-magento2-rest/Block/System/Config/TbkButton.php(24): Transbank\Webpay\Model\HealthCheck->__construct(Array) #1 /home/user/public_html/generated/code/Transbank/Webpay/Block/System/Config/TbkButton/Interceptor.php(14): Transbank\Webpay\Block\System\Config\TbkButton->__construct(Object(Magento\Backend\Block\Template\Context), Object(Transbank\Webpay\Model\Config\ConfigProvider)) #2 /home/user/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(121): Transbank\Webpay\Block\System\Config\TbkButton\Interceptor->__construct(Object(Magento\Backend\Block\Template\Context), Object(Transbank\Webpay\Model\Config\ConfigProvider)) #3 /home/user/public_html/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(66): Magento\Framework in /home/user/public_html/vendor/transbank/webpay-magento2-rest/Model/HealthCheck.php on line 21
Para reproducir
Contexto adicional
logs de transbank :
2021-04-19T00:05:45+00:00 ERR (3): Error al crear transacción: Deprecated Functionality: Non-static method Transbank\Webpay\WebpayPlus\Transaction::create() should not be called statically in /home/user/public_html/vendor/transbank/webpay-magento2-rest/Model/TransbankSdkWebpayRest.php on line 60
Describe el bug
Si realizas una compra y pones el boton back, se generar un nuevo pedido pero compartira el mismo quote anteior. De esta forma si un cliente reintenta varias veces una compra esta tendra el mismo quote asignado asi a varios pedidos.
Esto genera una serie de insconsisencias en modulos que dependan de esto, puesto que magento se diseño para 1 pedido a 1 quote.
Para reproducir
Comportamiento observado
Si se mira la tabla quote order mismo quote esta duplicado varias ordenes
Comportamiento esperado
Debiera haber un quote por order. Entonces debiera haber un observer que reconosca el back button y generar un nuevo quote con los datos del pedido anterior, despues usar el metodo replacequote para reemplazar el quote con el correcto.
Capturas de pantalla
Si aplica, agrega aquí capturas de pantalla que ayuden a explicar tu problema.
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.
Describe el bug
Tengo registrado un Observer que "escucha" al evento "sales_order_place_before". El Observer envía un request a otro endpoint y si la response tiene algún error, cancelo la orden y redirecciono al carrito de compras mostrando el mensaje de error.
Esto funcionaba bien hasta que instalé el plugin de transbank. No se ejecuta el redireccionamiento y continúa con el proceso de pago de transbank
Para reproducir
public function execute (Observer $observer)
{
$observer->getEvent()->getOrder()->cancel();
$redirectionUrl = $this->url->getUrl('/checkout/cart/index');
$this->responseFactory->create()->setRedirect($redirectionUrl)->sendResponse();
exit;
}
Comportamiento observado
Luego del "place order" no redirecciona al carrito de compras (como si lo hace al seleccionar otro método de pago incluído en Magento)
Comportamiento esperado
Luego del "place order" debería redireccionar al carrito de compras (como si lo hace al seleccionar otro método de pago incluído en Magento)
Versiones:
Describe el bug
Cuando intentas modificar el titulo del metodo de pago por el scope Store desde el admin, no se puede ver y desde el Website Scope ocurre un error en el observer SaveConfigObserver.php
Para reproducir
Ahora para ver el error del observer
Comportamiento observado
No puedes guardar la configuración por Store del Title aunque creo que fue configurado para eso.
En el scope de Website el observer espera tener definido parametros en el request que no necesariamente van a ser configurados por el usuario, ocurriendo un error en la linea 31 y posteriormente en la 38 del SaveConfigObserver.php
Comportamiento esperado
Se espera que en system.xml el grupo sea visible en el scope de store para que pueda configurarse el titulo en caso de tener una tienda multi store o multi idioma.
Además la logica del observer mencionado debería tener fallback para obtener el valor ya sea porque fue configurado en el website o en el scope por defecto.
Versiones (por favor agrega aquí la siguiente información):
La instalación del plugin rest para magento ha presentado algunos comportamientos que no he podido resolver.
1- Mail de confirmación de compra se envía antes del pago, en el momento que el cliente le hace click al botón de ‘Pagar con Transbank’
2- Al finalizar el pago, transbank redirecciona al carrito de compras en ves de la pagina de suceso.
Para reproducir
Versiones (por favor agrega aquí la siguiente información):
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.