一个用于 Vapor 框架的 TaxJar API 客户端。
如果您还没有账户,您需要创建一个 TaxJar 账户。然后您需要生成一个 API 令牌,您可以从您的仪表板访问该令牌。
将包实例添加到您的 manifest 文件的 dependencies
数组中,使用最新版本
.package(url: "https://github.com/skelpo/TaxJar.git", from: "0.1.0")
并运行 swift package update
。
要使用 TaxJar 客户端,您需要将 TaxJarProvider
添加到您应用的 services 中。初始化器需要您的 API 密钥。建议您不要将该值硬编码到您的应用中。相反,您应该将其分配给一个环境变量,并在您的应用启动时获取它。
export TAXJAR_KEY=API-KEY
guard let key = Environment.get("TAXJAR_KEY") else {
throw Abort(.internalServerError, reason: "Missing env var `TAXJAR_KEY `")
}
try services.register(TaxJarProvider(key: key))
目前,仅支持 POST /taxes
端点。您可以通过从容器中获取 SalesTax
实例,并使用计算税费所需的信息调用 .tax(for:)
来访问它。
let from = Address(country: .unitedStates, zip: "92093", state: .ca, city: "La Jolla", street: "9500 Gilman Drive")
let to = Address(country: .unitedStates, zip: "90002", state: .ca, city: "Los Angeles", street: "1335 E 103rd St")
let nexus = [Address(id: "Main Location", country: .unitedStates, zip: "92093", state: .ca, city: "La Jolla", street: "9500 Gilman Drive")]
let items = [LineItem(id: "1", quantity: 1, taxCode: "20010", price: 15, discount: 0)]
let request = Tax.CalculateRequest(from: from, to: to, amount: 15, shipping: 1.5, customer: "31415", nexus: nexus, items: items)
let tax = try self.app.make(SalesTax.self).tax(for: request)