Closed rodrigofbm closed 5 years ago
Você teria como postar o seu código com a função que você está utilizando, juntamente com o body da sua request ? Além disso, qual environment você está utilizando, produção ou sandbox ? Já vi alguns parâmetros inválidos que acabam resultando nisso, assim como já vi o ambiente sandbox indisponível algumas poucas vezes, mas sem o seu código fica ruim de analisar.
Está no ambiente sandbox. Eu até usei os parâmetros do exemplo aqui da lib, mas deu o mesmo resultado, cheguei a pensar que realmente o ambiente sandbox possa estar offline
@rodrigofbm Mas então, posta o seu código com a sua request pra gente analisar.
module.exports.createCustomerCard = (application, req, res) => {
let ownerId = req.params.ownerId;
const { User } = require('../models/Schemas/userSchema');
const moipModels = new application.app.models.moipModels(User);
const pubKey = `-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----`;
req.assert('expirationMonth', 'O mês deve ter dois dígitos').isLength({ min: 2, max:2 });
req.assert('expirationYear', 'O ano deve ter dois dígitos').isLength({ min: 2, max:2 });
let errors = req.validationErrors();
if(errors) {
console.log(errors);
return res.status(403).send(errors);
}
const {
nome,
email,
dataNascimento,
cpf,
foneAreaCode,
foneNumber,
expirationMonth,
expirationYear,
creditCardNumber,
ccv
} = req.body;
let novaData = dataNascimento.split('/');
let dataAmericana = novaData[2] + '-' + novaData[1] + '-' + novaData[0];
moip.customer.createCreditCard('5bafd7cac8e01b1a66f3ea30', {
method: "CREDIT_CARD",
creditCard: {
expirationMonth: '05',
expirationYear: '22',
number: '5555666677778884',
cvc: '123',
holder: {
fullname: 'Rodrigo Torres',
birthdate: '1993-11-16',
taxDocument: {
type: "CPF",
number: '08087383831'
},
phone: {
countryCode: "55",
areaCode: '21',
number: '32323443'
}
}
}
}).then((response) => {
MoipCreditCard
.setEncrypter(JSEncrypt, 'node')
.setPubKey(pubKey)
.setCreditCard({
number: `${creditCardNumber}`,
cvc: '123',
expirationMonth: '05',
expirationYear: '22'
})
.hash()
.then(hash => {
moipModels.addCustomerCard(res, ownerId, hash, response.body);
});
}).catch((err) => {
res.status(400).send({error: `${err}`});
console.log(err)
});
}
Embora os seus parâmetros estejam corretos, tentei com outros parâmetros válidos e a API sempre retorna o mesmo erro, o que me leva acreditar que realmente se trata de alguma instabilidade no ambiente sandbox. Tentei outras resources como criar uma Order ou listar os Payments, e funcionam normalmente. Parece algo limitado aos cartões dos customers. Por um breve momento, acessando o painel sandbox tive o Erro 502 do NGINX e algumas requests demoraram a responder. O @somentelucas poderia talvez confirmar se trata de alguma instabilidade do ambiente.
Isso. Os outros métodos funcionam normalmente. Vou aguardar.
Realmente se tratava de alguma instabilidade do ambiente Sandbox:
No meu caso o problema é que eu estava enviando o customer
como array
ao invés de objeto
@matheusdavidson Alguns parâmetros inválidos podem resultar neste tipo de erro.
Estava funcionando normalmente, mas hoje fui testar e passei a receber essa mensagem. Não há mais nada sobre o erro além dessa mensagem.