TransWikia.com

Como guardar tarjetas de un cliente MercadoPago sdk Nodejs

Stack Overflow en español Asked by facundo rotger on September 24, 2020

Estoy intentando guardar las tarjetas de los clientes para que no tengan que cargar todos los datos cada vez que realicen un pago.

Ya intenté el mismo procedimiento cambiando entre el Access Token de prueba de mi cuenta, el Access Token de producción de un usuario test y el Access Token de prueba de ese mismo usuario test. En todos los casos usé los datos de las tarjetas de prueba proveídas por ML y un mail, nombre y num. de documento cualquiera.
Desde el frontend genero el token de la tarjeta sin problema pero al tratar de crearla y asociarla al customer obtengo siempre el mismo error.

{ code: '120', description: 'card not found' }

Este es mi codigo:

const client = await Cliente.findOne({ user: req.user.id }).populate(
  "user",
  ["email"]
);

// Busco si el cliente esta guardado
var filters = {
  qs: { email: client.user.email },
};
var customer;
customer = await mercadopago.customers.search(filters);

var customerId;
if (customer.response.results.length === 0) {
  // En caso de que el customer no exista lo creo y asigno el id
  customer = await mercadopago.customers.create({
    email: client.user.email,
  });
  customerId = customer.response.id;
} else {
  // Si el customer ya existe solo asigno su id
  customerId = customer.response.results[0].id;
}

const card_data = {
  token: req.body.token,
  customer_id: customerId,
};
const card = await mercadopago.card.create(card_data);

console.log(card);

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP