Calculo de Frete Com WebService Dos Correios

6
16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 1/6 [email protected] Tweetar 1 2 6 Calculo de Frete com WebService dos Correios. 17 de julho de 2012 Marcos Alexandre de Souza ASP.NET C#, 0 Calculo de Frete com WebService dos Correios. ASP.NET é um modelo de desenvolvimento Web unificado que inclui os serviços necessários para você construir aplicações web de nível empresarial com um mínimo de codificação. ASP.NET faz parte do framework .NET , e ao codificar aplicativos ASP.NET você tem acesso as classes no framework .NET. Você pode codificar seus aplicativos em qualquer linguagem compatível com o Common Language Runtime (CLR), inclusive do Microsoft Visual Basic e C#. Estas linguagens permitem você desenvolver aplicações que se beneficiam do ambiente integrado de execução, proteção de tipos, herança, e assim por diante. È através do ASP.NET que iremos desenvolver um projeto para comunicação com o webservices dos correios. Essa comunicação é muito importa, pois, através dela podemos buscar informações nos correios como : 1 – Cálculo de Frete para SEDEX 2 – Cálculo de Frete para PAC 3 – Prazo de entrega. Este projeto pode ser aplicado em lojas virtuais, softwares cliente/servidor e até mesmo disponibilizar para os clientes consultarem essas informações no seu site. O primeiro passo que deveremos dar para entender um pouco mais sobre o WebService é baixando a documentação no site dos correios, para isso utilize o link do webservice inserido no “para saber mais”, através dessa documentação saberemos quais os retornos o Web-Service traz e como faremos para comunicar com ele. Recomendo que baixe essa documentação e faça uma leitura para que possam entender melhor o seu funcionamento. Criando Nosso Projeto no ASP.NET: Vamos utilizar o endereço do WebService calcPrecoPrazo e referenciá-lo em nosso projeto. Primeiro passo é criar um novo projeto no Visual Studio 2010 (figura01), aqui estou utilizando uma Blank Solutions (figura02), ou seja, um projeto em branco, onde irei adicionar outro projeto dentro. Esse método é muito eficiente e organizado, pois, através dele eu posso adicionar e gerenciar vários projetos. Figura 01 – Criando novo projeto Figura 02 – Escolhendo tipo de projeto Feito a criação de nossa blank solutions, vamos agora adicionar um novo projeto ASP.NET Web Applications, conforme exemplo abaixo. O nome do projeto e da página vocês fiquem a vontade para determina-los. Rede Social Tópicos recentes Preencher ComboBox C# e Banco de Dados no Windows Forms DNAD2013 – Arquitetura de Software Usando NOT IN clause no LINQ to SQ Qual a versão do .NET Framework disponível na plataforma Windows? Hospedagem ASP.NET 4.0 e SQL 2008 Comentários andre em Enviar Email com Asp.Net e C# andre em Enviar E-mail usando o Gmail e ASP.NET com C# Leonardo em Slide de Imagens com JQuery e Asp.Net Marcos Alexandre de Souza em Slide de Blog – Marcos Alexandre de Souza Analista Desenvolvedor C#, VB.NET, ASP.NET, VB6, SQL SERVER, PHP, MYSQL PÁGINA INICIAL ASP.NET C# HOSPEDAGEM Gosto 6

Transcript of Calculo de Frete Com WebService Dos Correios

Page 1: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 1/6

[email protected]

Tweetar 1 2 6

Calculo de Frete com WebService dos Correios.

17 de julho de 2012 Marcos Alexandre de Souza ASP.NET C#, 0

Calculo de Frete com WebService dos Correios.

ASP.NET é um modelo de desenvolvimento Web unificado que inclui os serviços necessários para

você construir aplicações web de nível empresarial com um mínimo de codificação. ASP.NET faz parte

do framework .NET , e ao codificar aplicativos ASP.NET você tem acesso as classes no framework

.NET. Você pode codificar seus aplicativos em qualquer linguagem compatível com o Common

Language Runtime (CLR), inclusive do Microsoft Visual Basic e C#. Estas linguagens permitem você

desenvolver aplicações que se beneficiam do ambiente integrado de execução, proteção de tipos,

herança, e assim por diante.

È através do ASP.NET que iremos desenvolver um projeto para comunicação com o webservices dos

correios. Essa comunicação é muito importa, pois, através dela podemos buscar informações nos

correios como :

1 – Cálculo de Frete para SEDEX

2 – Cálculo de Frete para PAC

3 – Prazo de entrega.

Este projeto pode ser aplicado em lojas virtuais, softwares cliente/servidor e até mesmo disponibilizar

para os clientes consultarem essas informações no seu site.

O primeiro passo que deveremos dar para entender um pouco mais sobre o WebService é baixando a

documentação no site dos correios, para isso utilize o link do webservice inserido no “para saber

mais”, através dessa documentação saberemos quais os retornos o Web-Service traz e como faremos

para comunicar com ele.

Recomendo que baixe essa documentação e faça uma leitura para que possam entender melhor o seu

funcionamento.

Criando Nosso Projeto no ASP.NET:

Vamos utilizar o endereço do WebService calcPrecoPrazo e referenciá-lo em nosso projeto.

Primeiro passo é criar um novo projeto no Visual Studio 2010 (figura01), aqui estou utilizando uma

Blank Solutions (figura02), ou seja, um projeto em branco, onde irei adicionar outro projeto dentro.

Esse método é muito eficiente e organizado, pois, através dele eu posso adicionar e gerenciar vários

projetos.

Figura 01 – Criando novo projeto

Figura 02 – Escolhendo tipo de projeto

Feito a criação de nossa blank solutions, vamos agora adicionar um novo projeto ASP.NET Web

Applications, conforme exemplo abaixo. O nome do projeto e da página vocês fiquem a vontade para

determina-los.

Rede Social

Tópicos recentes

Preencher ComboBox C# e Banco de Dados

no Windows Forms

DNAD2013 – Arquitetura de Software

Usando NOT IN clause no LINQ to SQ

Qual a versão do .NET Framework disponível

na plataforma Windows?

Hospedagem ASP.NET 4.0 e SQL 2008

Comentários

andre em Enviar Email com Asp.Net e C#

andre em Enviar E-mail usando o Gmail e

ASP.NET com C#

Leonardo em Slide de Imagens com JQuery e

Asp.Net

Marcos Alexandre de Souza em Slide de

Blog – Marcos Alexandre de SouzaAnalista Desenvolvedor C#, VB.NET, ASP.NET, VB6, SQL SERVER, PHP, MYSQL

PÁGINA INICIAL ASP.NET C# HOSPEDAGEM

Gosto 6

Page 2: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 2/6

Com o projeto criado, vamos trabalhar com a página que irá receber os dados de entrada e exibir o

nosso calculo de frete. Nesse exemplo iremos calcular o sedex e o PAC. A imagem abaixo ilustra a

nossa página, esse modelo é apenas para explicar como funcionam os cálculos de frete dos correios.

Iremos informar para o webservice o valor do produto, cep de origem, cep de destino, peso do produto,

comprimento da embalagem, altura da embalagem, largura da embalagem e caso haja o diâmetro você

poderá informar. Após essas informações iremos clicar no botão calcular frete e nossas páginas irão

calcular o valor do sedex, PAC e o prazo de entrega do produto.

Para que isso tudo funcione, vamos adicionar a referencia do webservice dos correios em nosso

projeto. A imagem abaixo ilustra a referência feita ao webservice.

Bom, nossa página foi criada fizemos referência ao webservice, agora vamos programa o botão calcular

frete.

Vamos criar um método privado chamado ConsultaWebServiceCorreios, esse método fará a

comunicação com o serviço dos correios e nos retornará o preço cobrado para envio do SEDEX e do

PAC.

O código abaixo está comentado facilitando para você o entendimento de cada linha de código.

2634

13156

40

26

2

Imagens com JQuery e Asp.Net

Leonardo em Slide de Imagens com JQuery e

Asp.Net

Categorias

Selecionar categoria

Estatística

Este post:

Total de visitas:

Visitas hoje:

Visitas ontem:

Visitantes online:

Tags mais utilizadas

ASP.NET ASP.NET 4.0

ASP.NET MVC 4.0 Banner C# Como Hospedar

Site Moodle na Internet Correios DNAD2013 -

Arquitetura de Softw are Frete

hospedagem de

sites Hospedagem de Sites para MVC 4.0

http://dnad.azurew ebsites.net/

http://w w w .vbmahospedagem.com.br/planos-

hospedagem-de-sites Imagens jQuery Slides URL

amigável WebService

w w w .vbmahospedagem.com.br

Comentários

andre em Enviar Email com Asp.Net e C#

andre em Enviar E-mail usando o Gmail e

ASP.NET com C#

Leonardo em Slide de Imagens com JQuery e

Asp.Net

Marcos Alexandre de Souza em Slide de

Imagens com JQuery e Asp.Net

Leonardo em Slide de Imagens com JQuery e

Asp.Net

1 private decimal ConsultaWebServiceCorreios(string nuCepDestino, int Servico, decimal?

Page 3: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 3/6

Agora o código para o botão de calcular o frete:

234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889

{ string nuCep = "35164383"; TxtCidadeOrigem.Text = "Ipatinga"; // Dados da empresa, se tiver contrato com os Correios string nCdEmpresa = string.Empty; string sDsSenha = string.Empty; // Código do tipo de frete - por padrão deixei o SEDEX string nCdServico = Servico.ToString(); // Cep de origem e destino - apenas números string sCepOrigem = nuCep; string sCepDestino = nuCepDestino.Replace(".", "").Replace("-", "").Replace("/" // Peso total da encomenda string nVlPeso = nuPeso.ToString(); // Formato da encomenda int nCdFormato = 1; //Caixa // Informa se é por mão própria string sCdMaoPropria = "N"; // Valor declarado decimal nVlValorDeclarado = 0; //não informado - padrao // Se desejo recebr aviso de recebimento string sCdAvisoRecebimento = "N"; //por padrao não // Instancio o web-service Correios.CalcPrecoPrazoWS webServiceCorreios = new Correios.CalcPrecoPrazoWS(); // Efetuo a requisição Correios.cResultado retornoCorreios = webServiceCorreios.CalcPrecoPrazo(nCdEmpresa, sDsSenha, nCdServico, sCepOrigem, sCepDestino, nVlPeso, nCdFormato, nVlComprimento, nVlAltura, nVlLargura, nVlDiametro, sCdMaoPropria, nVlValorDeclarado, sCdAvisoRecebimento); // Verifico se há retorno if (retornoCorreios.Servicos.Length > 0) { // Se deu tudo certo, então retorna o valor if (retornoCorreios.Servicos[0].Erro == "0") { LblPrazoEntrega.Text = retornoCorreios.Servicos[0].PrazoEntrega.ToString() + " dia(s)." return decimal.Parse(retornoCorreios.Servicos[0].Valor.ToString()); } else { LblMensagem.Text = retornoCorreios.Servicos[0].MsgErro; return 0; } } else LblMensagem.Text = "NÃO FOI POSSÍVEL CONSULTAR O SERVIÇO DESEJADO!"; return 0; }

12345678

protected void BtnCalcularFrete_Click(object sender, EventArgs e) { CalculaFrete(); }

?

Page 4: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 4/6

Feito os procedimentos acima mencionados, teremos o resultado conforme a imagem abaixo.

Veja que o webservice retornou para nossa página o valor do sedex e do PAC e também quantos dias

para entrega dessa encomenda.

910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

private void CalculaFrete() { if (TxtValorProduto.Text == string.Empty) { LblMensagem.Text = "Para calcular o frete é necessário informar o valor do produto." return; } LblMensagem.Text = string.Empty; string nuCep = TxtCepDestino.Text; decimal VlProduto = decimal.Parse(TxtValorProduto.Text.ToString().Replace("R$", if (nuCep == string.Empty) { LblMensagem.Text = "Digite o número do cep."; return; } if (nuCep.Length < 8) { LblMensagem.Text = "Cep de destino é inválido."; return; } //Calcula o Valor do Frete, sistema verifica o tamanho das caixas para fazer cálculo. decimal ValorPac = 0; decimal ValorSedex = 0; decimal nVlComprimento = 0; decimal nVlAltura = 0; decimal nVlLargura = 0; decimal nVlDiamentro = 0; nVlComprimento = decimal.Parse(TxtComprimento.Text); nVlAltura = decimal.Parse(TxtAltura.Text); nVlLargura = decimal.Parse(TxtLargura.Text); nVlDiamentro = decimal.Parse(TxtDiamentro.Text); ValorSedex = decimal.Parse(ConsultaWebServiceCorreios(TxtCepDestino.Text, 40010, nVlComprimento, nVlAltura, nVlLargura, nVlDiamentro, ValorPac = decimal.Parse(ConsultaWebServiceCorreios(TxtCepDestino.Text, 41106, nVlComprimento, nVlAltura, nVlLargura, nVlDiamentro, TxtSedex.Text = ValorSedex.ToString(); TxtPac.Text = ValorPac.ToString(); }

Page 5: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 5/6

URL amigável no Asp.Net 4.0 e C#.

Nome

ASP.NET 4.0, C#, Correios, Frete, WebService

Para podermos conferir se os valores retornados estão mesmo corretos, vamos entrar no site dos

correios através e preencher as mesmas informações que fornecemos para nossa página. Vendo nas

imagens abaixo, podemos comprovar que nosso calculo de frete está correto, agora é só adicionar em

seus projetos e boa sorte.

O artigo explica de forma clara e objetiva como fazer acesso ao webservice dos correios e retornar as

informações de cálculos de fretes para Sedex e Pac, como também o prazo de entrega. Além você

tem uma visão de como trabalhar com WebServices e poderá aplicar em outros tipos de projetos que

tenham necessidade de ler WebService. Qualquer dúvida você poderá entrar no DevBrasil e postar

seus comentários.

Para saber mais

Aprofunde seus conhecimentos na comunidade de Asp.Net

Conheça o MID (Most Influential Developer) e faça parte desse time

Blog ThiagoMarcal

Correios

MSDN

WebService Correios

CalculoPreçoPrazo

Prazo via correios

Procurando uma hospedagem de sites?

Acesse Vbma Hospedagem.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Page 6: Calculo de Frete Com WebService Dos Correios

16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza

www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 6/6

Email

Site

Comentário

*

Você pode usar estas tags e atributos de HTML: <a href=""

title=""> <abbr title=""> <acronym title=""> <b>

<blockquote cite=""> <cite> <code> <del datetime=""> <em>

<i> <q cite=""> <strike> <strong>

Publ i car comentári o

PÁGINA INICIAL ASP.NET C# HOSPEDAGEM

Pow ered by WordPress Designed by Bazahoteli.pl