首页 > 解决方案 > 尝试更新现有订阅时无效的 trial_end

问题描述

调用 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,
)

标签: pythondjangostripe-payments

解决方案


事实证明,我传递条纹的时间戳中有一个小数。时间戳是1560360533.0,这导致了问题。当我截断时间戳以删除小数时,一切正常。这是修复它的代码行:

new_end_ts = round(new_end_dt.replace(tzinfo=timezone.utc).timestamp())


推荐阅读