Integração - Correios

Biblioteca Java para Integração com o Web Service dos Correios (Prazo e Frete).

License

License

GroupId

GroupId

com.github.felipecaparelli
ArtifactId

ArtifactId

integracao-correios
Last Version

Last Version

1.0.1
Release Date

Release Date

Type

Type

pom
Description

Description

Integração - Correios
Biblioteca Java para Integração com o Web Service dos Correios (Prazo e Frete).
Project URL

Project URL

http://github.com/felipecaparelli/integracao-correios
Project Organization

Project Organization

WRO Consulting
Source Code Management

Source Code Management

http://github.com/felipecaparelli/integracao-correios/tree/master

Download integracao-correios

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.felipecaparelli/integracao-correios/ -->
<dependency>
    <groupId>com.github.felipecaparelli</groupId>
    <artifactId>integracao-correios</artifactId>
    <version>1.0.1</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.felipecaparelli/integracao-correios/
implementation 'com.github.felipecaparelli:integracao-correios:1.0.1'
// https://jarcasting.com/artifacts/com.github.felipecaparelli/integracao-correios/
implementation ("com.github.felipecaparelli:integracao-correios:1.0.1")
'com.github.felipecaparelli:integracao-correios:pom:1.0.1'
<dependency org="com.github.felipecaparelli" name="integracao-correios" rev="1.0.1">
  <artifact name="integracao-correios" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.felipecaparelli', module='integracao-correios', version='1.0.1')
)
libraryDependencies += "com.github.felipecaparelli" % "integracao-correios" % "1.0.1"
[com.github.felipecaparelli/integracao-correios "1.0.1"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • correios-client

integracao-correios Build Status Hex.pm codecov

Biblioteca Java para Integração com o Web Service dos Correios (Prazo e Frete)

Índice

Introdução

Este projeto tem como propósito oferecer uma alternativa simples para a execução do web service SOAP provido pela empresa Correios para os recursos de consulta de prazo e preço do frete. O serviço SOAP do Correios não é muito complexo, mas a idéia é abstrair o uso do SOAP para que você possa focar apenas na integração da sua loja virtual com o serviço que precisa.

Configurações

Se quiser utilizar este projeto siga os seguintes passos:

Com o maven:

  1. Adicione ao seu pom.xml a dependência:
	<dependency>
		<groupId>com.github.felipecaparelli</groupId>
		<artifactId>correios-client</artifactId>
		<version>1.0.1</version>
	</dependency>

Sem o maven:

  1. Baixe o projeto git clone https://github.com/felipecaparelli/integracao-correios.git
  2. Execute o maven mvn clean install
  3. Copie a biblioteca /integracao-correios/correios-client/target/correios-client-0.0.1-SNAPSHOT.jar para seu diretório WEB-INF/lib, junto com uma tonelada de dependências listadas no final deste arquivo.

Uso básico

O serviço já vem com os dados básicos da pesquisa preenchidos, sendo o serviço padrão utilizado o 'SEDEX Varejo'

	CorreiosPrecoPrazo result = new ConsultaCorreios().calcularPrecoPrazo("06053040", "80540220")[0];

	System.out.println(String.format("Valor do Frete: %f - Prazo de Entrega: %d dias", result.getPrecoFrete(), result.getPrazoEntrega()));

Deixo claro que o objeto que construo no retorno não possui a mesma interface do objeto retornado pelo serviço do Correios, mas contém todos os dados que eles devolvem. Na realidade, a intenção do objeto que eu retorno é deixar mais claras as informações providas.

Como o foco do projeto é sem um facilitador para programadores Java na integração com o serviço dos Correios, os dados parametrizados e retornados são em geral constituídos de variaveis que sejam coerentes com os tipos necessários (por exemplo, valores monetários que utilizaremos para cálculos são retornados como Double).

Parâmetros Complementares

A API permite parametrizar todos os dados aceitos no web service do Correios, seguindo as mesmas regras da validação do mesmo:

	CorreiosPrecoPrazo result = new ConsultaCorreios()
		.servicos(CorreiosTipoServico.PAC_VAREJO) //tipo de servi&ccedil;o 'PAC'
		.entregarEmMaos(IndicadorSN.SIM) //indicador que define se a entrega deve ser em m&atilde;os
		.calcularPrecoPrazo("06053040", "80540220")[0];

	System.out.println("Pre&ccedil;o do Frete: " + result.getPrecoFrete());
	System.out.println(String.format("Prazo de Entrega: %d dias", result.getPrazoEntrega()));

Perceba que o retorno é um array de objetos do tipo CorreiosPrecoPrazo, pois o serviço do Correios retorna 1 elemento para cada tipo de serviço consultado. Se você parametrizar mais de um serviço terá múltiplos retornos:

	CorreiosPrecoPrazo[] results = new ConsultaCorreios()
			.servicos(CorreiosTipoServico.PAC_VAREJO, CorreiosTipoServico.SEDEX_10_VAREJO)
			.calcularPrecoPrazo("06053040", "80540220");

	for (CorreiosPrecoPrazo result : results) {
		System.out.println("Pre&ccedil;o do Frete: " + result.getPrecoFrete());
		System.out.println(String.format("Prazo de Entrega: %d dias", result.getPrazoEntrega()));
	}

Essa é uma versão inicial e tem muito para melhorar. Se tiver interesse em evoluir e implementar os outros serviços disponibilizados pelo Correios fique a vontade para fazer um fork ou colaborar com este projeto ;)

Dependências

Todas as bibliotecas deste projeto estão diretamente ligadas à biblioteca soap-ws, que é utilizada para realizar a chamada SOAP do web service do Correios.

  • junit-4.12.jar
  • hamcrest-core-1.3.jar
  • soap-builder-1.0.0-SNAPSHOT.jar
  • soap-common-1.0.0-SNAPSHOT.jar
  • wsdl4j-1.6.2.jar
  • commons-lang3-3.1.jar
  • xmlunit-1.3.jar
  • soap-legacy-1.0.0-SNAPSHOT.jar
  • xml-apis-1.0.b2.jar
  • batik-ext-1.7.jar
  • xercesImpl-2.10.0.jar
  • xbean-fixed-2.4.0.jar
  • xbean_xpath-2.4.0.jar
  • xmlbeans-xmlpublic-2.5.0.jar
  • stax-api-1.0.1.jar
  • jsr173-1.0.jar
  • saxon-9.1.0.8.jar
  • saxon-dom-9.1.0.8.jar
  • wsrf-xbeans-1.0.jar
  • XmlSchema-1.4.5.jar
  • soap-client-1.0.0-SNAPSHOT.jar
  • httpclient-4.2.3.jar
  • httpcore-4.2.2.jar
  • log4j-1.2.17.jar
  • commons-logging-1.1.1.jar
  • commons-io-2.3.jar
  • commons-codec-1.6.jar
  • guava-osgi-11.0.1.jar
  • soap-server-1.0.0-SNAPSHOT.jar
  • spring-ws-core-2.1.1.RELEASE.jar
  • spring-xml-2.1.1.RELEASE.jar
  • spring-context-3.1.2.RELEASE.jar
  • spring-expression-3.1.2.RELEASE.jar
  • spring-asm-3.1.2.RELEASE.jar
  • spring-aop-3.1.2.RELEASE.jar
  • aopalliance-1.0.jar
  • spring-oxm-3.1.2.RELEASE.jar
  • commons-lang-2.5.jar
  • spring-web-3.1.2.RELEASE.jar
  • spring-webmvc-3.1.2.RELEASE.jar
  • spring-context-support-3.1.2.RELEASE.jar
  • stax-api-1.0-2.jar
  • spring-core-3.1.2.RELEASE.jar
  • spring-beans-3.1.2.RELEASE.jar
  • jetty-embedded-6.1.26.jar
  • jetty-6.1.26.jar
  • servlet-api-2.5-20081211.jar
  • jetty-sslengine-6.1.26.jar
  • jsp-api-2.1.jar
  • jetty-java5-threadpool-6.1.26.jar
  • jetty-util-6.1.26.jar
  • slf4j-api-1.6.6.jar
  • slf4j-log4j12-1.6.6.jar

Versions

Version
1.0.1
1.0