Phaneronsoft desenvolvimento Web
Ph: 04102010
 

Sistema e manual para Calcular Frete SEDEX, e-SEDEX e PAC dos Correios (versão 1.1)

Ferramentas, Javascript, JQuery, PHP, XML View Comments Marcelo Korjenioski

Desde semana pas­sada o antigo web­ser­vice dos cor­reios parou de fun­ci­o­nar com PAC.
Foi feita a cor­re­ção do código e agora o PAC esta fun­ci­o­nando novamente.

Sis­tema para Cal­cu­lar Frete 1.1

Docu­men­ta­ção para uti­li­zar o web­ser­vice dos Cor­reios para efe­tuar o cal­culo de forma personalizada.

SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos

Abaixo segue o código para mani­pu­lar os dados do web­ser­vice usando o PHP.

Segue o exem­plo do código abaixo funcionando.

<?php
/**
* Faz consulta no webservice dos correios e gera array dos valores.
* @copyright  Phaneronsoft
* @author Marcelo Korjenioski - faleconosco@phaneronsoft.com
* @see http://www.phaneronsoft.com
* @filesource correios.php
* @version 1.0
*/

// PESO: Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define('PESO',0.300);
// COMPRIMENTO: comprimento do volume em centímetros - somente número de 16 a 60
define('COMPRIMENTO',30);
// ALTURA: altura do volume em centímetros - somente número de 2 a 60
define('ALTURA',15);
// LARGURA: largura do volume em centimetros - somente número de 5 a 60
define('LARGURA',20);
// CODIGO_SERVICO: É possivel fazer mais de uma consulta ao mesmo tempo, basta separar os códigos por virgula.
// Neste caso PAC 41106 e SEDEX 40010
define('CODIGO_SERVICO','41106,40010');
// CEP_ORIGEM: seu CEP com 8 dígitos - somente números
define('CEP_ORIGEM','81010210');
// CEP_DESTINO: CEP do seu cliente com 8 dígitos - somente números
define('CEP_DESTINO','60245965');

// Crio um objeto para manipular o XML.
$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc->Load("http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;nCdServico=" . CODIGO_SERVICO . "&amp;nVlPeso=" . PESO . "&amp;sCepOrigem=" . CEP_ORIGEM . "&amp;sCepDestino=" . CEP_DESTINO . "&amp;nCdFormato=1&amp;nVlComprimento=" . COMPRIMENTO . "&amp;nVlAltura=" . ALTURA . "&amp;nVlLargura=" . LARGURA);
// Defino o nome do elemento pai (root).
$root = $doc->getElementsByTagName('cServico');

// Carrega o arquivo XML com um arquivo DOMDocument
$correios = "http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;nCdServico=" . CODIGO_SERVICO . "&amp;nVlPeso=" . PESO . "&amp;sCepOrigem=" . CEP_ORIGEM . "&amp;sCepDestino=" . CEP_DESTINO . "&amp;nCdFormato=1&amp;nVlComprimento=" . COMPRIMENTO . "&amp;nVlAltura=" . ALTURA . "&amp;nVlLargura=" . LARGURA;
// Defino o nome do elemento pai (root).
$root = $doc->getElementsByTagName('cServico');

// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array('Valor','PrazoEntrega');

// Faço um loop para pegar todos os elementos pai (root) encontrados.
$valor = array();
for ($i=0; $i < $root->length; $i++) {
// Pega o valor do atributo do elemento pai  (root).
    $id =  $root->item($i)->getElementsByTagName('Codigo')->item(0)->nodeValue;

// Busca por elementos filhos (child) definidos no array
    foreach ($children as $child) {
        $valor[$id][$child] = $root->item($i)->getElementsByTagName($child)->item(0)->nodeValue;
    }
}
echo '<pre>';
var_dump($valor);

Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.

Tags: CEP, correios, Frete, manual, PAC, Sedex, webservice
Designed by NattyWP Wordpress Themes.
Images by desEXign.
 


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser