当调用stripe的api来更新客户的订阅时,我得到一个错误。当用户在“我的网站”上执行操作时,他们可以免费获得几个月的订阅。为了给用户提供几个月的免费时间,我尝试更新trial_end参数以延长免费试用期。我得到的错误是:Invalid trial_end must be one of now
new_end_dt = datetime.now() + timedelta(days=30)
new_end_ts = new_end_dt.replace(tzinfo=timezone.utc).timestamp()
stripe.Subscription.modify(
self.stripe_subscription_id,
trial_end=new_end_ts,
trial_from_plan=False,
)发布于 2019-04-12 05:04:56
事实证明,我传递给stripe的时间戳中有一个小数。时间戳是1560360533.0,这会导致问题。当我截断时间戳以去掉小数时,一切都正常工作。下面这行代码修复了这个问题:
new_end_ts = round(new_end_dt.replace(tzinfo=timezone.utc).timestamp())
https://stackoverflow.com/questions/55641141
复制相似问题