Ola,
estou tentando fazer um servico para consumir o webservice da sefaz, mas nao estou conseguindo fazer o acesso com o certificado. Ja vi todo o material do node-soap, e na pagina de ajuda deles. Baseado no que li montei esse codigo:
const soap = require('soap');
const fs = require('fs');
const url = 'https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx'
const pfxFile = __dirname + '\\certificado.pfx';
const pfxPass = "xxxxxx";
const options = {
wsdl_options: {
agentOptions: {
pfx: pfxFile,
passphrase: pfxPass,
securityOptions: 'SSL_OP_NO_SSLv3'
}
}
}
soap.createClient(url, options, (err, client) => {
if (err) {
return console.log('createClient() erro>>>', err);
}
client.setSecurity(
new soap.ClientSSLSecurityPFX(
pfxFile,
pfxPass,
{
rejectUnauthorized: false,
strictSSL: false,
secureOptions: constants.SSL_OP_NO_TLSv1_2,
forever: true
}
)
);
console.log(client.describe());
})
porem quando execute recebo a mensagem de erro:
Error: not enough data
at Object.createSecureContext (_tls_common.js:271:19)
at Object.connect (_tls_wrap.js:1583:48)
at Agent.createConnection (https.js:130:22)
at Agent.createSocket (_http_agent.js:281:26)
at Agent.addRequest (_http_agent.js:240:10)
at new ClientRequest (_http_client.js:296:16)
at Object.request (https.js:314:10)
at Request.start (D:\Users\th1m0r\Projetos\aratu-nfe\node_modules\request\request.js:751:32)
at Request.end (D:\Users\th1m0r\Projetos\aratu-nfe\node_modules\request\request.js:1505:10)
at end (D:\Users\th1m0r\Projetos\aratu-nfe\node_modules\request\request.js:564:14)
at Immediate._onImmediate (D:\Users\th1m0r\Projetos\aratu-nfe\node_modules\request\request.js:578:7)
at processImmediate (internal/timers.js:456:21)
se alguem ja fez essa comunicacao, o que estou fazendo de errado?
[]'s