Stripe 创建使用记录错误 - 时间戳必须早于订阅的当前周期结束时间 - Date.now()?

Posted

技术标签:

【中文标题】Stripe 创建使用记录错误 - 时间戳必须早于订阅的当前周期结束时间 - Date.now()?【英文标题】:Stripe Create Usage Record Error - Timestamp must be before the subscription's current period end time - Date.now()? 【发布时间】:2019-09-14 19:35:59 【问题描述】:

我正在尝试为计量计划中的客户创建条带使用记录。

当我在请求中使用时间戳 Date.now() 时。我收到的错误是

“无法使用此时间戳创建使用记录,因为时间戳必须早于订阅的当前周期结束时间”

这似乎不言自明。但是鉴于订阅的当前周期结束时间不是另外 14 天,Date.now() 怎么可能不在这之前。

        await stripe.usageRecords.create(
            'si_EwzQ....',
            
                quantity: 2,
                timestamp: Date.now(),
                action: 'set'
            
        )

这是因为当前订阅期是试用期吗?还是我在这里误解了什么?

【问题讨论】:

【参考方案1】:

他们在这里使用的时间戳略有不同。您必须将其除以 1000。

所以Date.now() / 1000

【讨论】:

如果结果数字有小数,这仍然会中断,例如1570202647.927。为避免这种情况,只需执行Math.ceil(Date.now() / 1000)【参考方案2】:

Node.JS 使用毫秒时间刻度,所以你说当前时间是当前时间的 1000 倍。

先这样做var currentTimestamp = Date.now()/1000

【讨论】:

上面会给出十进制格式的结果,所以你可以使用 Math.ceil(Date.now() / 1000)【参考方案3】:

使用 Math.ceil(Date.now() / 1000) 代替,因为 Stripe 使用不同的格式(不带小数)。

【讨论】:

以上是关于Stripe 创建使用记录错误 - 时间戳必须早于订阅的当前周期结束时间 - Date.now()?的主要内容,如果未能解决你的问题,请参考以下文章

python redistimeseries 时间戳不能早于时间序列中的最新时间戳

SQL 时间戳查询:检查一个时间戳是不是早于另一个

如何检查时间戳是不是早于某个月数? [复制]

Stripe API 订阅

Stripe - 支付订单错误:无法向没有活动卡的客户收费

Rails Stripe - 您必须提供有效卡