登录
首页 >  Golang >  Go问答

获得 Stripe 发票的精确总金额的方法使用 Go API

来源:stackoverflow

时间:2024-03-26 12:54:34 382浏览 收藏

在使用 Stripe Go 库列出特定客户的发票时,发现应付金额与实际金额存在差异。Stripe 的 amountdue 字段以美分为单位存储,因此实际金额为 10.00 美元,而应付金额显示为 1000 美元。

问题内容

使用 stripe go 库,在列出特定客户的发票时,该发票的应付金额为 1000 美元,而实际金额应为 10.00 美元(在 stripe 仪表板中可以看到)。

我假设这是因为 invoice 结构中的 amountdue 字段是 int64 (https://github.com/stripe/stripe-go/blob/master/invoice.go#l204),并且它正在丢失小数铸造期间的成分,但有没有办法获得准确的数量?

这就是我查询发票的方式:

params := &stripe.InvoiceListParams{}
  params.Filters.AddFilter("limit", "", "100")
  params.Filters.AddFilter("customer", "", stripeCustomerId)
  i := invoice.List(params)
  for i.Next() {
    i := i.Invoice()

    invoice := BillingModels.Transaction{
      Id:         i.ID,
      Amount:     i.AmountDue,
    }   

    invoices = append(invoices, invoice)
  }

解决方案


AmountDue 字段以美分为单位,所有 Stripe 字段也是如此,因此它们应存储为整数。在处理金钱问题时,这种情况很常见。切勿使用浮动货币。

https://stripe.com/docs/api/invoices/object#invoice_object-amount_due

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《获得 Stripe 发票的精确总金额的方法使用 Go API》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>