Skip to content

Instantly share code, notes, and snippets.

@brauliobo
Last active August 29, 2015 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brauliobo/9994554 to your computer and use it in GitHub Desktop.
Save brauliobo/9994554 to your computer and use it in GitHub Desktop.
Cálculo do frete dos Correios usando Ruby/Rails/Nokogiri
# based on http://sounoob.com.br/consultar-frete-utilizando-webservice-dos-correios-php/
require 'rubygems'
require 'uri'
require 'net/http'
require 'active_support/all'
require 'nokogiri'
Pac = 41106
aviso_recebimento = 'n'
metodo = Pac
origem = '13083250'
destino = '46760000'
peso = '2' # kg
comprimento = '16' # cm, minium 16cm
altura = '2' # cm, minimum 2cm
largura = '11' # cm, minimum 11cm
params = {
'sCepOrigem' => origem, 'sCepDestino' => destino,
'nCdServico' => metodo,
'nCdFormato' => 1, 'nVlPeso' => peso,
'nVlComprimento' => comprimento, 'nVlAltura' => altura, 'nVlLargura' => largura,
'sCdAvisoRecebimento' => aviso_recebimento, 'sCdMaoPropria' => 's',
'StrRetorno' => 'xml'
}
uri = URI.parse "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?#{params.to_query}"
response = Net::HTTP.get uri
xml = Nokogiri::XML response
data = {};
xml.css('cServico').first.children.map{ |node| data[node.name.underscore] = node.text }
puts data.inspect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment