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!