条纹发票。第一张发票的开始/创建和结束日期都相同

jam*_*non 3 stripe-payments

我正在从我的 API 取回发票,并且我注意到如果有 2 个整月的计费周期,一切都很好 - 但我总是得到一个开始/结束日期和创建日期相同的发票。

所以,我最终显示它并且它没有意义......即。

假设用户在 2016 年 7 月 19 日创建了一个帐户......对于其中一张发票(其他发票很好),我得到了这个。

amount: 0
billingDate:"2016-07-19T23:20:33.000Z"
endDate:"2016-07-19T23:20:33.000Z"
startDate:"2016-07-19T23:20:33.000Z"
Run Code Online (Sandbox Code Playgroud)

我应该如何处理这个问题,或者这是一个有效的回应?请记住,我的帐单是在 8 号。我只是有点害怕:-),如果开始/结束/创建日期都相同,则省略它。

Luc*_*cia 8

事实上,stripe 文档说:

period_end:将发票项目添加到此发票的使用期限结束。

period_start:发票项目添加到此发票的使用期的开始时间。

所以它们根本不是订阅期。

要找到实际的订阅周期,如前面答案的评论中所述,我们需要过滤此发票的行项目。具体来说,我们需要非按比例分配的项目,因为这是描述正常订阅周期的项目。如:

find item in invoice.lines.data where item.proration==False

-> item.period.end
-> item.period.start
Run Code Online (Sandbox Code Playgroud)

如果没有订阅项目,就像我们配置的周期中期更改的情况一样pending_invoice_item_interval,任何项目的周期都可以,因为它们将属于当前正在修改的周期。


koo*_*jah 5

current_period_endcurrent_period_start对应于发票期间。作为 Stripe 结束时的规则,发票总是针对“上一个”期间,而订阅的行项目总是针对新月份。

这意味着,如果您在当月 1 日订阅了月度订阅,则 11 月 1 日的发票将是 10 月 1 日至 11 月 1 日,而订阅的行项目将是 11 月 1 日至12 月 1 日。

第一张发票有一个例外。由于没有“过去”的发票,current_period_endcurrent_period_start会在这种情况下,并对应于订阅的创建日期等。

如果您要显示发票对应期间的日期,我建议您使用订阅的行项目期间。