la-node-correios
v2.2.2
Published
Fork of node-correios with some speed improvement. Node.js module for the Brazilian mail service, Correios
Downloads
8
Maintainers
Readme
Correios Node.js
Módulo de Node.js que utilizar a API SOAP dos Correios para calcular frete de envio e buscar endereço pelo CEP. API dos Correios
APP de Exemplo
Como instalar
Basta utilizar o NPM com a flag --save para guardar como dependência no seu package.json
npm install node-correios --save
Como utilizar o calculo de frete
var Correios = require('node-correios'),
correios = new Correios();
correios.calcPreco(args, function (err, result) {
console.log(result);
});
//Com promises
correios.calcPreco(args).then(result => console.log(result));
Exemplo de resultado
Caso a consulta tenha sucesso, o callback
receberá um objeto como segundo parâmetro, similar a:
[{
Codigo: 40010,
Valor: '23,30',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: '0',
MsgErro: {}
}]
Caso algum parâmetro esteja errado, ou o serviço esteja indisponível para o CEP de destino, o objeto retornado no
callback
conterá a propriedade Erro
como um código de erro e conterá uma mensagem de erro no parâmetro MsgErro
.
[{
Codigo: 40215,
Valor: '0',
ValorMaoPropria: '0',
ValorAvisoRecebimento: '0',
ValorValorDeclarado: '0',
Erro: '008',
MsgErro: 'Serviço indisponível para o trecho informado.',
ValorSemAdicionais: '0'
}]
Em caso de erro na consulta ao WebService dos Correios, o callback
receberá o erro como primeiro parâmetro.
Para consultar mais de um serviço na mesma requisição, basta passar vários códigos de serviço, separados por vírgula,
para o parâmetro nCdServico
(ver descrição dos parâmetros abaixo). Neste caso, o array da resposta conterá um objeto
por cada código informado, sendo que alguns podem apresentar erro e outros podem ter tido sucesso.
var args = {
nCdServico: '40010,41106,40215',
// demais parâmetros ...
}
correios.calcPreco(args, function (err, result) {
console.log(result);
});
// result:
[{
Codigo: 40010,
Valor: '24,10',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: {},
MsgErro: {},
ValorSemAdicionais: '24,10'
},{
Codigo: 41106,
Valor: '16,80',
ValorMaoPropria: '0,00',
ValorAvisoRecebimento: '0,00',
ValorValorDeclarado: '0,00',
Erro: {},
MsgErro: {},
ValorSemAdicionais: '16,80'
},{
Codigo: 40215,
Valor: '0',
ValorMaoPropria: '0',
ValorAvisoRecebimento: '0',
ValorValorDeclarado: '0',
Erro: '008',
MsgErro: 'Serviço indisponível para o trecho informado.',
ValorSemAdicionais: '0'
}]
Métodos
Os métodos implementados são: calcPreco e calcPrecoPrazo
correios.calcPreco(args);
correios.calcPrecoPrazo(args);
Para executar o comando tem que enviar os campos obrigatórios. Para mais detalhes e informações veja o PDF da API dos correios
Obrigatórios
nCdServico
- StringCódigo do serviço:
- 40010 = SEDEX Varejo
- 40045 = SEDEX a Cobrar Varejo
- 40215 = SEDEX 10 Varejo
- 40290 = SEDEX Hoje Varejo
- 41106 = PAC Varejo
sCepOrigem
- StringCEP de Origem sem hífen. Exemplo: 05311900
sCepDestino
- StringCEP de Destino sem hífen
nVlPeso
- StringPeso da encomenda, incluindo sua embalagem. O peso deve ser informado em quilogramas. Se o formato for Envelope, o valor máximo permitido será 1 kg
nCdFormato
- InteiroFormato da encomenda (incluindo embalagem)
- 1 = Formato caixa/pacote
- 2 = Formato rolo/prisma
- 3 = Envelope
nVlComprimento
- DecimalComprimento da encomenda (incluindo embalagem), em centímetros
nVlAltura
- DecimalAltura da encomenda (incluindo embalagem), em centímetros. Se o formato for envelope, informar zero (0)
nVlLargura
- DecimalLargura da encomenda (incluindo embalagem), em centímetros
nVlDiametro
- DecimalDiâmetro da encomenda (incluindo embalagem), em centímetros
Não obrigatórios
nCdEmpresa
- StringSeu código administrativo junto à ECT. O código está disponível no corpo do contrato firmado com os Correios
sDsSenha
- StringSenha para acesso ao serviço, associada ao seu código administrativo. A senha inicial corresponde aos 8 primeiros dígitos do CNPJ informado no contrato
sCdMaoPropria
- StringIndica se a encomenda será entregue com o serviço adicional mão própria
- S = sim
- N = não PADRÃO
nVlValorDeclarado
- DecimalIndica se a encomenda será entregue com o serviço adicional valor declarado. Neste campo deve ser apresentado o valor declarado desejado, em Reais
sCdAvisoRecebimento
- StringIndica se a encomenda será entregue com o serviço adicional mão própria
- S = sim
- N = não PADRÃO
Como utilizar a buscar por CEP
var Correios = require('node-correios'),
correios = new Correios();
correios.consultaCEP({ cep: '00000000' }, function(err, result) {
console.log(result)
});
//Ou
correios.consultaCEP({ cep: '00000000' }).then(result => console.log(result));
Exemplo de resultado
Caso a consulta tenha sucesso, o callback
receberá um objeto como segundo parâmetro, similar a:
{
bairro: 'Ipanema',
cep: '22421030',
localidade: 'Rio de Janeiro',
logradouro: 'Rua Redentor',
uf: 'RJ'
}
Em caso de erro na consulta ao WebService dos Correios, o callback
receberá o erro ocorrido como primeiro parâmetro.
Testes unitários
Para rodas os testes unitários, depois de instalar as dependências do projeto com o npm install
, execute o comando:
$ npm test
Para incluir seus testes unitários, eles se encontram na pasta ./test
Contribuições
Para contribuir com o projeto basta seguir as seguintes intruções: Link
Autor
| | |---| | Vitor Leal |
Licença
Veja LICENSE.txt