我正在使用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年!到底是怎么回事?
答案 0 :(得分:2)
似乎与时间戳有关。 PHP时间戳以秒为单位,而JavaScript时间戳以毫秒为单位。 您是否尝试过除以1000?