Boa tarde, Kalmon, tudo bem?
Então, estou tendo uma dúvida que é a seguinte: estou fazendo uma consulta na Sefaz, e quando rodo localmente ele traz o retorno assim, porém, quando estou rodando em produção em uma VPS na Hostinger, o servidor hospedado nos Estados Unidos.
Ele cai no erro do catch. Vou deixar em anexo o código.
async statusSefaz(req, res) {
try {
let { idVenda } = req.query;
if (!idVenda) {
return res.status(400).json({ error: "idVenda é obrigatório" });
}
const response = await axios.get(`${url}/api/venda/lista-venda-new-xml.xsjs?id=${idVenda}`);
const vendaData = response.data;
const configData = response.data.data[0]?.configuracao?.[0]?.config || {};
const cscId = configData.IDTOKEN || "1";
const csc = configData.TOKENCSC || "";
const uf = vendaData.data[0]?.venda.NFE_INFNFE_EMIT_ENDEREMIT_UF;
const mod = String(vendaData.data[0]?.venda.NFE_INFNFE_IDE_MOD || "65");
const tpAmb = parseInt(vendaData.data[0]?.venda.NFE_INFNFE_IDE_TPAMB || 2);
const chaveRaw = vendaData.data[0]?.venda.CHAVE || "";
const chave = chaveRaw.replace(/^NFe/i, '').replace(/\D/g, '').slice(0, 44);
const SENHA_CERT = process.env.SENHA || "#senhagto2024#";
const certOptions = await getCertOptions(SENHA_CERT, './caminho/para/seu/certificado.pfx');
if (!certOptions) {
return res.status(500).json({
error: 'Não foi possível carregar o certificado. Verifique as variáveis de ambiente ou o arquivo local.'
});
}
const tools = new Tools({
mod: mod,
tpAmb: tpAmb,
UF: String(uf),
versao: "4.00",
CSC: csc,
CSCid: cscId
}, certOptions);
const resposta = await tools.sefazStatus(chave).catch(err => {
console.error('Erro ao consultar status da SEFAZ:', err.message);
throw err;
});
return res.json({
vendaData,
xml: resposta
});
} catch (error) {
console.error('Erro ao consultar XML:', error.message);
return res.status(500).json({ error: 'Erro ao consultar venda ou gerar XML' });
}
}