correios

package module
v0.0.0-...-b6164e6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2018 License: MIT Imports: 4 Imported by: 0

README

Correios

Integração com webservice dos correios feito em Go.

Build Status GoDocGo Report Card codecov

Para entender melhor o funcionamento da integração com os correios, quais campos são obrigatórios e como eles devem ser preenchidos acesse o link a baixo:

http://www.correios.com.br/para-voce/correios-de-a-a-z/pdf/calculador-remoto-de-precos-e-prazos/manual-de-implementacao-do-calculo-remoto-de-precos-e-prazos

Instalação

go get github.com/tiaguinho/correios

Struct da consulta

A estrutura abaixo mostra os campos que devem ser preenchidos para executar a requisição para o webservice dos correios.

type Params struct {
	CodigoEmpresa    string  `url:"nCdEmpresa"`
	Senha            string  `url:"sDsSenha"`
	CodigoServico    string  `url:"nCdServico"`
	CepOrigem        string  `url:"sCepOrigem"`
	CepDestino       string  `url:"sCepDestino"`
	Peso             string  `url:"nVlPeso"`
	CodigoFormato    int     `url:"nCdFormato"`
	Comprimento      float64 `url:"nVlComprimento"`
	Altura           float64 `url:"nVlAltura"`
	Largura          float64 `url:"nVlLargura"`
	Diametro         float64 `url:"nVlDiametro"`
	MaoPropria       string  `url:"sCdMaoPropria"`
	ValorDeclarado   float64 `url:"nVlValorDeclarado"`
	AvisoRecebimento string  `url:"sCdAvisoRecebimento"`
}

Utilização

Abaixo um exemplo de como utilizar o package dos correios

package main

import (
	"fmt"
	"github.com/tiaguinho/correios"
)

func main() {
	params := correios.Params{
		CodigoServico: "40010,40045,40215,40290,41106",
		CepOrigem:     "05311900",
		CepDestino:    "86600280",
		Peso:          "300",
		CodigoFormato: 1,
		Comprimento:   20,
		Altura:        20,
		Largura:       20,
		Diametro:      0,
		MaoPropria:    "N",
	}

	results, _ := correios.CalcPrecoPrazo(params)
	for _, result := range results {
		fmt.Println("Código => ", result.Codigo)
		fmt.Println("Valor => ", result.Valor)
		fmt.Println("Prazo => ", result.Prazo)
		fmt.Println("Valor Mão Própria => ", result.ValorMaoPropria)
		fmt.Println("Valor Aviso Recebimento => ", result.ValorAvisoRecebimento)
		fmt.Println("Valor Declado => ", result.ValorDeclado)
		fmt.Println("Entrega Domiciliar => ", result.EntregaDomiciliar)
		fmt.Println("Entrega Sábado => ", result.EntregaSabado)
		fmt.Println("Erro => ", result.Erro)
		fmt.Println("MsgErro => ", result.MsgErro)

		fmt.Println("...")
	}
}

Licença

The MIT License (MIT) Copyright (c) 2013

Documentation

Index

Constants

View Source
const WEBSERVICE string = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx"

WEBSERVICE é o link do webservice dos correios

Variables

This section is empty.

Functions

This section is empty.

Types

type Params

type Params struct {
	CodigoEmpresa    string  `url:"nCdEmpresa"`
	Senha            string  `url:"sDsSenha"`
	CodigoServico    string  `url:"nCdServico"`
	CepOrigem        string  `url:"sCepOrigem"`
	CepDestino       string  `url:"sCepDestino"`
	Peso             string  `url:"nVlPeso"`
	CodigoFormato    int     `url:"nCdFormato"`
	Comprimento      float64 `url:"nVlComprimento"`
	Altura           float64 `url:"nVlAltura"`
	Largura          float64 `url:"nVlLargura"`
	Diametro         float64 `url:"nVlDiametro"`
	MaoPropria       string  `url:"sCdMaoPropria"`
	ValorDeclarado   float64 `url:"nVlValorDeclarado"`
	AvisoRecebimento string  `url:"sCdAvisoRecebimento"`
}

Params é a struct com os parametros da requisição

type Servico

type Servico struct {
	Codigo                string `xml:"Codigo"`
	Valor                 string `xml:"Valor"`
	Prazo                 string `xml:"PrazoEntrega"`
	ValorMaoPropria       string `xml:"ValorMaoPropria"`
	ValorAvisoRecebimento string `xml:"ValorAvisoRecebimento"`
	ValorDeclado          string `xml:"ValorValorDeclado"`
	EntregaDomiciliar     string `xml:"EntregaDomiciliar"`
	EntregaSabado         string `xml:"EntregaSabado"`
	Erro                  string `xml:"Erro"`
	MsgErro               string `xml:"MsgErro"`
}

Servico e a struct com os dados do retorno de cada serviço

func CalcPrazo

func CalcPrazo(consulta Params) ([]*Servico, error)

CalcPrazo calcula somente o prazo de entrega

func CalcPreco

func CalcPreco(consulta Params) ([]*Servico, error)

CalcPreco calcula o preço da entrega

func CalcPrecoPrazo

func CalcPrecoPrazo(consulta Params) ([]*Servico, error)

CalcPrecoPrazo calcula o preço e o prazo de entrega do item informado

type Servicos

type Servicos struct {
	Resultado xml.Name   `xml:"cResultado"`
	Servico   []*Servico `xml:"Servicos>cServico"`
}

Servicos guarda a response da consulta

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL