如果您正在建立需要準確計算銷售稅的應用程序,那麼 zip.tax API 是一個出色的整合工具。本指南將引導您了解如何在 Golang 應用程式中設定和使用 zip.tax API。
開始之前,請確保您具備以下條件:
為了發出 HTTP 請求,我們將使用 Golang 的標準 net/http 套件。此外,我們將使用encoding/json來解析JSON回應。
建立新的專案目錄並初始化新模組:
mkdir ziptax-golang && cd ziptax-golang go mod init ziptax-golang
這是一個簡單的 Golang 應用程式的完整範例,該應用程式查詢 zip.tax API 以獲取銷售稅資訊。
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) }
將程式碼儲存到檔案(例如main.go),然後執行程式:
go run main.go
您應該會看到與此類似的輸出:
Normalized Address: 200 Spectrum Center Dr, Irvine, CA 92618-5003, United States Address Lat/Lng: 33.652530, -117.747940 Rate: 7.75%
將 zip.tax API 整合到您的 Golang 應用程式中非常簡單。透過遵循本指南,您可以使用基於地址的準確銷售稅資訊來增強您的申請。更多詳情請參考官方文件。
如果您有任何問題或回饋,請隨時在下面發表評論。快樂編碼!
以上是將 zip.zax 銷售稅 API 整合到您的 Golang 應用程式中的詳細內容。更多資訊請關注PHP中文網其他相關文章!