O ruhanbidart publicou no viva o linux um script em javascript que resolve muitos problemas, principalente para lojas virtuais. Esse script faz uma requisição no site dos correios e usa a função callback, que você pode reescrevê-la como desejar, manipulando o resultado como melhor lhe convir.
Então você pode criar sua função callback:
function trataFrete(frete) {
alert('O valor total é R$' + frete.preco_postal);
}
E rodar a função do script:
Correios.calcular(trataFrete, null, '33000-000', '33000-001', 5);
Onde, os parâmetros são:
- A referência (sem aspas) à função de callback
- Código do tipo de entrega que será calculada. Daí, temos:
- 40010 (SEDEX) (Padrão)
- 40290 (SEDEX Hoje)
- 40215 (SEDEX 10)
- 40045 (SEDEX a Cobrar)
- 81019 (e-SEDEX)
- 44105 (MALOTE)
- Cep de origem no formato NNNNN-NNN
- Cep de destino no formato NNNNN-NNN
- Peso da encomeda
Essa é a configuração básica, você ainda pode escolher entre mão própria, valor declarado e optar em adicionar o serviço de aviso de recebimento. O retorno para o callback é um belo json neste formato:
{
'servico': 40010,
'servico_nome': SEDEX,
'uf_origem': 'MG',
'local_origem': 'Capital',
'cep_origem': '33030645',
'uf_destino': 'RJ',
'local_destino': 'Interior',
'cep_destino': '25770970',
'peso': 10,
'mao_propria': 0,
'aviso_recebimento': 0,
'valor_declarado': 0,
'tarifa_valor_declarado': 0,
'preco_postal': 73.7
}
O código da biblioteca pode ser encontrado no próprio site do viva o linux.