Quantcast
Viewing all articles
Browse latest Browse all 212

React JS - Node JS y MercadoPago

estoy haciendo un eCommerce con React y Node, y queria integrar la pasarela de pago de Mercado Pago, Por el momento estoy usando usuarios de prueba, y queria saber si podian ayudarme, creo la preferencia y necesito que me redireccione al checkout de Mercado Pago para poder efectuar la compra.. Intente hacer la redireccion de pagina desde node js y no pude, entonces envio la respuesta de la peticion a mi frontend (React), y de ahi quiero que me redireccione al checkout de Mercado Pago.. Aqui les dejo mi codigo!La funcion que consume la API de Node Js desde react es:

export const generarPago = async (cart , authtoken) => {return await axios.post(`${process.env.REACT_APP_MY_DOMAIN_API_BASE}/api/generarPago`, {cart}, {    headers: {        authtoken,    }})};

En el backend(Node js) recibo:

    router.post('/generarPago', authCheck,generarPago);exports.generarPago = async (req, res) => {    /*    FORMAS DE PAGOS :     1.MERCADO PAGO    2.PAYPAL    3.TRANSFERENCIA BANCARIA    */    let AccessToken = undefined    //AccessToken = await oConfiguracion.getValorStringBackend('MP_ACCESS_TOKEN');    AccessToken = "MI TOKEN"    let carrito = await req.body.cart.carrito;    const { idFormaPago, idUsuario } = req.body.cart;    console.log(AccessToken)    if (idFormaPago > 0) {        if (idFormaPago === 1) {            let contenidoCarrito = {};            let Prefrenecia;            debugger;            mercadoPago.configure({                access_token: AccessToken            });            carrito.map(async (c) => {                importeTotal = c.Importe * c.count;                contenidoCarrito = contenidoCarrito + {                    title: c.Articulo,                    unit_price: c.Importe,                    quantity: c.count                }            });            Preferencia = {                items: [                    contenidoCarrito                ]            };            mercadoPago.preferences.create(Preferencia)                .then(function (response) {                    /*global.id = response.body.id;                    console.log("RESPONSE:" + JSON.stringify(response));                    console.log("RES " +res);*/                    res.json(response.body);                }).catch(function (error) {                    console.log(error);                });        }    } else {        return;    }}

Con el res.json envio la respuesta y en el frontend recibo esta respuesta y quiero hacer el redirect, pero no me redirecciona, aqui va el codigo del frontend :

const crearPedido = async () => {        let idUsuario = user._id;        let idFormaPago = 1        generarPago({ carrito,idUsuario,idFormaPago }, user.token)            .then((res) => {                console.log(JSON.stringify(res.data.init_point));                history.redirect(res.data.init_point)                /*if (res.data.pedidoGuardado.insertId > 0) {                    let cart = [];                    localStorage.setItem("carrito", JSON.stringify(cart));                    dispatch({                        type: "ADD_TOCART",                        payload: cart                    })                    history.push("/checkout");                };*/            }).catch((err) => {                console.log("ERRORE : " + err);            })    }

Quiero saber si saben alguna forma de redireccionarme al checkout de Mercado Pago desde react , desde ya muchas gracias ! O Si es posible desde node y luego enviar la respuesta al frontend da igual, de cualquier forma necesito obtener esa redireccion, desde ya muchas gracias!


Viewing all articles
Browse latest Browse all 212

Trending Articles