Heim > Backend-Entwicklung > Golang > Integrieren Sie die zip.zax-Umsatzsteuer-API in Ihre Golang-App

Integrieren Sie die zip.zax-Umsatzsteuer-API in Ihre Golang-App

Mary-Kate Olsen
Freigeben: 2025-01-03 22:17:41
Original
441 Leute haben es durchsucht

Integrate the zip.zax Sales Tax API in Your Golang App

Wenn Sie eine Anwendung erstellen, die genaue Umsatzsteuerberechnungen erfordert, ist die zip.tax-API ein hervorragendes Tool zur Integration. Dieser Leitfaden führt Sie durch die Einrichtung und Verwendung der zip.tax-API in einer Golang-Anwendung.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Grundkenntnisse in Golang.
  • Eine Golang-Entwicklungsumgebung eingerichtet.
  • Ein API-Schlüssel von zip.tax.

Schritt 1: Erforderliche Bibliotheken installieren

Für HTTP-Anfragen verwenden wir das Standardpaket net/http von Golang. Darüber hinaus verwenden wir „encoding/json“ zum Parsen von JSON-Antworten.

Schritt 2: Richten Sie Ihr Golang-Projekt ein

Erstellen Sie ein neues Projektverzeichnis und initialisieren Sie ein neues Modul:

mkdir ziptax-golang && cd ziptax-golang
go mod init ziptax-golang
Nach dem Login kopieren

Schritt 3: Schreiben Sie den Code

Hier ist ein vollständiges Beispiel einer einfachen Golang-Anwendung, die die zip.tax-API nach Umsatzsteuerinformationen abfragt.

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "net/http"
    "net/url"
)

type Response struct {
    Version       string        `json:"version"`
    RCode         int           `json:"rCode"`
    Results       []Result      `json:"results"`
    AddressDetail AddressDetail `json:"addressDetail"`
}

type Result struct {
    GeoPostalCode     string  `json:"geoPostalCode"`
    GeoCity           string  `json:"geoCity"`
    GeoCounty         string  `json:"geoCounty"`
    GeoState          string  `json:"geoState"`
    TaxSales          float64 `json:"taxSales"`
    TaxUse            float64 `json:"taxUse"`
    TxbService        string  `json:"txbService"`
    TxbFreight        string  `json:"txbFreight"`
    StateSalesTax     float64 `json:"stateSalesTax"`
    StateUseTax       float64 `json:"stateUseTax"`
    CitySalesTax      float64 `json:"citySalesTax"`
    CityUseTax        float64 `json:"cityUseTax"`
    CityTaxCode       string  `json:"cityTaxCode"`
    CountySalesTax    float64 `json:"countySalesTax"`
    CountyUseTax      float64 `json:"countyUseTax"`
    CountyTaxCode     string  `json:"countyTaxCode"`
    DistrictSalesTax  float64 `json:"districtSalesTax"`
    DistrictUseTax    float64 `json:"districtUseTax"`
    District1Code     string  `json:"district1Code"`
    District1SalesTax float64 `json:"district1SalesTax"`
    District1UseTax   float64 `json:"district1UseTax"`
    District2Code     string  `json:"district2Code"`
    District2SalesTax float64 `json:"district2SalesTax"`
    District2UseTax   float64 `json:"district2UseTax"`
    District3Code     string  `json:"district3Code"`
    District3SalesTax float64 `json:"district3SalesTax"`
    District3UseTax   float64 `json:"district3UseTax"`
    District4Code     string  `json:"district4Code"`
    District4SalesTax float64 `json:"district4SalesTax"`
    District4UseTax   float64 `json:"district4UseTax"`
    District5Code     string  `json:"district5Code"`
    District5SalesTax float64 `json:"district5SalesTax"`
    District5UseTax   float64 `json:"district5UseTax"`
    OriginDestination string  `json:"originDestination"`
}

type AddressDetail struct {
    NormalizedAddress string  `json:"normalizedAddress"`
    Incorporated      string  `json:"incorporated"`
    GeoLat            float64 `json:"geoLat"`
    GeoLng            float64 `json:"geoLng"`
}

func getSalesTax(address string, apiKey string) (*Response, error) {
    url := fmt.Sprintf("https://api.zip-tax.com/request/v50?key=%s&address=%s", apiKey, url.QueryEscape(address))

    resp, err := http.Get(url)
    if err != nil {
        return nil, fmt.Errorf("failed to make API request: %w", err)
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode)
    }

    var taxResponse Response
    if err := json.NewDecoder(resp.Body).Decode(&taxResponse); err != nil {
        return nil, fmt.Errorf("failed to parse response: %w", err)
    }

    return &taxResponse, nil
}

func main() {
    apiKey := "your_api_key_here".  // Replace with your key
    address := "200 Spectrum Center Dr, Irvine, CA 92618"                  // Example address

    taxInfo, err := getSalesTax(address, apiKey)
    if err != nil {
        log.Fatalf("Error fetching sales tax: %v", err)
    }

    fmt.Printf("Normalized Address: %s\n", taxInfo.AddressDetail.NormalizedAddress)
    fmt.Printf("Address Lat/Lng: %f, %f\n", taxInfo.AddressDetail.GeoLat, taxInfo.AddressDetail.GeoLng)
    fmt.Printf("Rate: %.2f%%\n", taxInfo.Results[0].TaxSales*100)
}
Nach dem Login kopieren

Erläuterung des Kodex

  1. API-Anfrage: Die getSalesTax-Funktion erstellt eine URL mit dem API-Schlüssel und einer Adresse, stellt eine GET-Anfrage und analysiert die Antwort.
  2. Antwortanalyse: Der Antwort-JSON wird in eine Antwortstruktur entmarshallt, um einen einfachen Zugriff auf Umsatzsteuerdetails zu ermöglichen.
  3. Ergebnisse anzeigen: Die Hauptfunktion druckt die normalisierte Adresse, Lat/Lng und den Umsatzsteuersatz für den angegebenen Adresscode. Sie können hier jeden der Response-Strukturwerte verwenden, um die benötigten Daten auszugeben.

Schritt 4: Führen Sie die Anwendung aus

Speichern Sie den Code in einer Datei (z. B. main.go) und führen Sie dann das Programm aus:

go run main.go
Nach dem Login kopieren

Sie sollten eine Ausgabe ähnlich dieser sehen:

Normalized Address: 200 Spectrum Center Dr, Irvine, CA 92618-5003, United States
Address Lat/Lng: 33.652530, -117.747940
Rate: 7.75%
Nach dem Login kopieren

Abschluss

Die Integration der zip.tax-API in Ihre Golang-Anwendung ist unkompliziert. Wenn Sie diesem Leitfaden folgen, können Sie Ihre Bewerbung mit genauen Umsatzsteuerinformationen basierend auf der Adresse erweitern. Weitere Einzelheiten finden Sie in der offiziellen Dokumentation.

Wenn Sie Fragen oder Feedback haben, können Sie unten gerne einen Kommentar hinterlassen. Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonIntegrieren Sie die zip.zax-Umsatzsteuer-API in Ihre Golang-App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage