Você está na página 1de 6

16/09/13

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza

Blog Marcos Alexandre de Souza


Analista Desenvolvedor C#, VB.NET, ASP.NET, VB6, SQL SERVER, PHP, MYSQL

marcosvbma@gmail.com

PGINA INICIAL

ASP.NET C#

HOSPEDAGEM

Calculo de Frete com WebService dos Correios.


17 de julho de 2012
Gosto 6 Tw eetar

Marcos Alexandre de Souza


1 2

ASP.NET C#,
6

Calculo de Frete com WebService dos Correios.


ASP.NET um modelo de desenvolvimento Web unificado que inclui os servios necessrios para voc construir aplicaes web de nvel empresarial com um mnimo de codificao. 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 compatvel com o Common Language Runtime (CLR), inclusive do Microsoft Visual Basic e C#. Estas linguagens permitem voc desenvolver aplicaes que se beneficiam do ambiente integrado de execuo, proteo de tipos, herana, e assim por diante. atravs do ASP.NET que iremos desenvolver um projeto para comunicao com o webservices dos correios. Essa comunicao muito importa, pois, atravs dela podemos buscar informaes nos correios como : 1 Clculo de Frete para SEDEX 2 Clculo 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 informaes no seu site. O primeiro passo que deveremos dar para entender um pouco mais sobre o WebService baixando a documentao no site dos correios, para isso utilize o link do webservice inserido no para saber mais, atravs dessa documentao saberemos quais os retornos o Web-Service traz e como faremos para comunicar com ele. Recomendo que baixe essa documentao e faa uma leitura para que possam entender melhor o seu funcionamento. Criando Nosso Projeto no ASP.NET: Vamos utilizar o endereo 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 mtodo muito eficiente e organizado, pois, atravs dele eu posso adicionar e gerenciar vrios projetos.

Rede Social

Tpicos 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 verso do .NET Framework disponvel na plataforma Windows? Hospedagem ASP.NET 4.0 e SQL 2008

Figura 01 Criando novo projeto

Figura 02 Escolhendo tipo de projeto

Feito a criao de nossa blank solutions, vamos agora adicionar um novo projeto ASP.NET Web Applications, conforme exemplo abaixo. O nome do projeto e da pgina vocs fiquem a vontade para determina-los.

Comentrios
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

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

1/6

16/09/13

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza
Imagens com JQuery e Asp.Net Leonardo em Slide de Imagens com JQuery e Asp.Net

Categorias
Selecionar categoria

Com o projeto criado, vamos trabalhar com a pgina 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 pgina, esse modelo apenas para explicar como funcionam os clculos 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 dimetro voc poder informar. Aps essas informaes iremos clicar no boto calcular frete e nossas pginas iro calcular o valor do sedex, PAC e o prazo de entrega do produto.

Estatstica
Este post: Total de visitas: Visitas hoje: Visitas ontem: Visitantes online: 2634 13156 40 26 2

Tags mais utilizadas


ASP.NET

ASP.NET MVC 4.0 Banner

ASP.NET 4.0 C#

Como Hospedar

Site Moodle na Internet Correios DNAD2013 Arquitetura de Softw are Frete

hospedagem de sites
http://dnad.azurew ebsites.net/ amigvel WebService w w w .vbmahospedagem.com.br

Hospedagem de Sites para MVC 4.0

http://w w w .vbmahospedagem.com.br/planoshospedagem-de-sites Imagens jQuery Slides URL

Para que isso tudo funcione, vamos adicionar a referencia do webservice dos correios em nosso projeto. A imagem abaixo ilustra a referncia feita ao webservice.

Comentrios
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

Bom, nossa pgina foi criada fizemos referncia ao webservice, agora vamos programa o boto calcular frete. Vamos criar um mtodo privado chamado ConsultaWebServiceCorreios, esse mtodo far a comunicao com o servio dos correios e nos retornar o preo cobrado para envio do SEDEX e do PAC. O cdigo abaixo est comentado facilitando para voc o entendimento de cada linha de cdigo. 1 p r i v a t ed e c i m a lC o n s u l t a W e b S e r v i c e C o r r e i o s ( s t r i n gn u C e p D e s t i n o ,i n tS e r v i c o ,? d e c i m a l

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

2/6

16/09/13
2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 {

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza

s t r i n gn u C e p=" 3 5 1 6 4 3 8 3 " ; T x t C i d a d e O r i g e m . T e x t=" I p a t i n g a " ; / /D a d o sd ae m p r e s a ,s et i v e rc o n t r a t oc o mo sC o r r e i o s s t r i n gn C d E m p r e s a=s t r i n g . E m p t y ; s t r i n gs D s S e n h a=s t r i n g . E m p t y ; / /C d i g od ot i p od ef r e t e-p o rp a d r od e i x e ioS E D E X s t r i n gn C d S e r v i c o=S e r v i c o . T o S t r i n g ( ) ; / /C e pd eo r i g e med e s t i n o-a p e n a sn m e r o s s t r i n gs C e p O r i g e m=n u C e p ; s t r i n gs C e p D e s t i n o=n u C e p D e s t i n o . R e p l a c e ( " . " ," " ) . R e p l a c e ( " " ," " ) . R e p l a c e ( " / " / /P e s ot o t a ld ae n c o m e n d a s t r i n gn V l P e s o=n u P e s o . T o S t r i n g ( ) ; / /F o r m a t od ae n c o m e n d a i n tn C d F o r m a t o=1 ;/ / C a i x a / /I n f o r m as ep o rm op r p r i a s t r i n gs C d M a o P r o p r i a=" N " ; / /V a l o rd e c l a r a d o d e c i m a ln V l V a l o r D e c l a r a d o=0 ;/ / n oi n f o r m a d o-p a d r a o / /S ed e s e j or e c e b ra v i s od er e c e b i m e n t o s t r i n gs C d A v i s o R e c e b i m e n t o=" N " ;/ / p o rp a d r a on o / /I n s t a n c i oow e b s e r v i c e C o r r e i o s . C a l c P r e c o P r a z o W Sw e b S e r v i c e C o r r e i o s=n e wC o r r e i o s . C a l c P r e c o P r a z o W S ( ) ; / /E f e t u oar e q u i s i o

C o r r e i o s . c R e s u l t a d or e t o r n o C o r r e i o s=w e b S e r v i c e C o r r e i o s . C a l c P r e c o P r a z o ( n C d E m p r e s a ,s D s S e n h a ,n C d S e r v i c o ,s C e p O r i g e m ,s C e p D e s t i n o ,n V l P / /V e r i f i c os eh r e t o r n o i f( r e t o r n o C o r r e i o s . S e r v i c o s . L e n g t h>0 ) { / /S ed e ut u d oc e r t o ,e n t or e t o r n aov a l o r i f( r e t o r n o C o r r e i o s . S e r v i c o s [ 0 ] . E r r o= =" 0 " ) { L b l P r a z o E n t r e g a . T e x t=r e t o r n o C o r r e i o s . S e r v i c o s [ 0 ] . P r a z o E n t r e g a . T o S t r i n g ( )+"d i a ( s ) . " r e t u r nd e c i m a l . P a r s e ( r e t o r n o C o r r e i o s . S e r v i c o s [ 0 ] . V a l o r . T o S t r i n g ( ) ) ; } e l s e { L b l M e n s a g e m . T e x t=r e t o r n o C o r r e i o s . S e r v i c o s [ 0 ] . M s g E r r o ; r e t u r n0 ; } } e l s e L b l M e n s a g e m . T e x t=" N OF O IP O S S V E LC O N S U L T A ROS E R V I OD E S E J A D O ! " ; r e t u r n0 ; }

Agora o cdigo para o boto de calcular o frete: 1 2 3 4 5 6 7 8 p r o t e c t e dv o i dB t n C a l c u l a r F r e t e _ C l i c k ( o b j e c ts e n d e r ,E v e n t A r g se ) { C a l c u l a F r e t e ( ) ; }


?

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

3/6

16/09/13
9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 {

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza
p r i v a t ev o i dC a l c u l a F r e t e ( )

i f( T x t V a l o r P r o d u t o . T e x t= =s t r i n g . E m p t y ) { L b l M e n s a g e m . T e x t=" P a r ac a l c u l a rof r e t en e c e s s r i oi n f o r m a rov a l o rd op r o d u t o . " r e t u r n ; } L b l M e n s a g e m . T e x t=s t r i n g . E m p t y ; s t r i n gn u C e p=T x t C e p D e s t i n o . T e x t ; d e c i m a lV l P r o d u t o=d e c i m a l . P a r s e ( T x t V a l o r P r o d u t o . T e x t . T o S t r i n g ( ) . R e p l a c e ( " R $ " , i f( n u C e p= =s t r i n g . E m p t y ) { L b l M e n s a g e m . T e x t=" D i g i t eon m e r od oc e p . " ; r e t u r n ; } i f( n u C e p . L e n g t h<8 ) { L b l M e n s a g e m . T e x t=" C e pd ed e s t i n oi n v l i d o . " ; r e t u r n ; } / / C a l c u l aoV a l o rd oF r e t e ,s i s t e m av e r i f i c aot a m a n h od a sc a i x a sp a r af a z e rc l c u l o . d e c i m a lV a l o r P a c=0 ; d e c i m a lV a l o r S e d e x=0 ; d e c i m a ln V l C o m p r i m e n t o=0 ; d e c i m a ln V l A l t u r a=0 ; d e c i m a ln V l L a r g u r a=0 ; d e c i m a ln V l D i a m e n t r o=0 ; n V l C o m p r i m e n t o=d e c i m a l . P a r s e ( T x t C o m p r i m e n t o . T e x t ) ; n V l A l t u r a=d e c i m a l . P a r s e ( T x t A l t u r a . T e x t ) ; n V l L a r g u r a=d e c i m a l . P a r s e ( T x t L a r g u r a . T e x t ) ; n V l D i a m e n t r o=d e c i m a l . P a r s e ( T x t D i a m e n t r o . T e x t ) ; V a l o r S e d e x=d e c i m a l . P a r s e ( C o n s u l t a W e b S e r v i c e C o r r e i o s ( T x t C e p D e s t i n o . T e x t ,4 0 0 1 0 ,n V l C o m p r i m e n t o ,n V l A l t u r a ,n V l L a r g u r a ,n V l D i a m e n t r o , V a l o r P a c=d e c i m a l . P a r s e ( C o n s u l t a W e b S e r v i c e C o r r e i o s ( T x t C e p D e s t i n o . T e x t ,4 1 1 0 6 ,n V l C o m p r i m e n t o ,n V l A l t u r a ,n V l L a r g u r a ,n V l D i a m e n t r o , T x t S e d e x . T e x t=V a l o r S e d e x . T o S t r i n g ( ) ; T x t P a c . T e x t=V a l o r P a c . T o S t r i n g ( ) ; }

Feito os procedimentos acima mencionados, teremos o resultado conforme a imagem abaixo. Veja que o webservice retornou para nossa pgina o valor do sedex e do PAC e tambm quantos dias para entrega dessa encomenda.

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

4/6

16/09/13

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza

Para podermos conferir se os valores retornados esto mesmo corretos, vamos entrar no site dos correios atravs e preencher as mesmas informaes que fornecemos para nossa pgina. 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 informaes de clculos de fretes para Sedex e Pac, como tambm o prazo de entrega. Alm voc tem uma viso de como trabalhar com WebServices e poder aplicar em outros tipos de projetos que tenham necessidade de ler WebService. Qualquer dvida voc poder entrar no DevBrasil e postar seus comentrios. Para saber mais Aprofunde seus conhecimentos na comunidade de Asp.Net Conhea o MID (Most Influential Developer) e faa parte desse time Blog ThiagoMarcal Correios MSDN WebService Correios CalculoPreoPrazo Prazo via correios Procurando uma hospedagem de sites? Acesse Vbma Hospedagem .

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

URL amigvel no Asp.Net 4.0 e C#.

Deixe uma resposta


O seu endereo de email no ser publicado Campos obrigatrios so marcados Nome

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

5/6

16/09/13
Email

Calculo de Frete com WebService dos Correios. | Blog Marcos Alexandre de Souza

Site

Comentrio

Voc pode usar estas tags e atributos de HTML: < ah r e f = " "
t i t l e = " " >< a b b rt i t l e = " " >< a c r o n y mt i t l e = " " >< b > < b l o c k q u o t ec i t e = " " >< c i t e >< c o d e >< d e ld a t e t i m e = " " >< e m > < i >< qc i t e = " " >< s t r i k e >< s t r o n g >

Publ i car com ent ri o

PGINA INICIAL

ASP.NET C#

HOSPEDAGEM

Pow ered by WordPress Designed by Bazahoteli.pl

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

6/6