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()?的主要内容,如果未能解决你的问题,请参考以下文章