Calculo de Frete Com WebService Dos Correios
-
Upload
rodrigo-duarte -
Category
Documents
-
view
396 -
download
3
Transcript of 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
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
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?
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(); }
?
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(); }
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 *
*
16/09/13 Calculo de Frete com WebService dos Correios. | Blog – Marcos Alexandre de Souza
www.vbma.com.br/_blog/calculodefrete/#.Ujd9H9JwrXI 6/6
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