条纹-“无效的时间戳记:将来不能超过五年”

时间:2018-08-24 10:08:23

标签: node.js datetime stripe-payments

我正在使用Node.js Stripe软件包,我想向客户添加一个新订阅,该订阅将在30秒后过期。这是我的代码:

var toCreate = {
  customer: 'customer_id',
  items: [{
    plan: 'plan_id'
  }],
  coupon: 'coupon_code',
}
stripe.customers.create({xyz: 'This will give an error with the server time in the header'}).then(success => {},
  error => {
    var seconds = 30;
    toCreate.trial_end = new Date(error.raw.headers.date).getTime() + (seconds * 1000);
    console.log('End time', toCreate.trial_end);
    return stripe.subscriptions.create(toCreate).then(successful => {
      console.log(successful)
    }, error => {
      console.log(error)
    })
  })

该代码故意创建一个错误以获取准确的服务器时间,然后进行实际的stripe.subscriptions.create调用。

当我打电话给stripe.subscriptions.create时,Stripe给了我这个错误:

  

时间戳无效:将来不能超过五年

在这种情况下,我的代码提供的时间戳为1535104976000。 它包括在错误消息标题中:

date: 'Fri, 24 Aug 2018 10:02:27 GMT'

转换为纪元,即1535104947000

所以,我的时间肯定比他们的时间晚5年!到底是怎么回事?

1 个答案:

答案 0 :(得分:2)

似乎与时间戳有关。 PHP时间戳以秒为单位,而JavaScript时间戳以毫秒为单位。 您是否尝试过除以1000?