@jessica_efi Ai eu tentei sem o sdk:
require('dotenv').config();
const axios = require('axios');
const fs = require('fs');
const https = require('https');
const path = require('path');
function loadP12Certificate(certPath) {
console.log("HttpAgent => ", certPath);
const cert = path.resolve(__dirname, certPath);
const p12File = fs.readFileSync(cert);
return new https.Agent({
pfx: p12File,
rejectUnauthorized: process.env.NODE_ENV !== 'production'
});
}
// Função para obter o token de acesso
async function getAccessToken() {
const authUrl = ${process.env.EFI_API_URL}/oauth/token;
const credentials = {
client_id: process.env.EFI_CLIENT_ID,
client_secret: process.env.EFI_CLIENT_SECRET,
grant_type: 'client_credentials'
};
console.log("Cred => ", credentials);
const httpsAgent = loadP12Certificate(process.env.EFI_CERTIFICATE_PATH);
console.log("Agent => ", httpsAgent);
try {
const response = await axios.post(authUrl, credentials, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
httpsAgent
});
return response.data.access_token;
} catch (error) {
console.error('Erro ao obter token:', error.response ? error.response.data : error.message);
throw new Error('Falha ao autenticar com o EFÍ Bank');
}
}
Só que a Efí retorna um 500:
Erro ao obter token: self-signed certificate in certificate chain
Error: Falha ao autenticar com o EFÍ Bank
at getAccessToken