在条带计费周期结束时,何时对每月使用量收费



我有一个订阅计划,每个用户计划每月花费10美元+数据"超期"费用。换句话说,它类似于(不是无限的(手机数据计划。

在周期结束时,我应该在什么时候添加每月的数据使用量?

根据这里的Subscription生活方式文档,它说invoice.created事件发生在invoice.payment_succeededcharge.succeeded之前大约一个小时。然而,似乎几乎不可能测试这一点,因为每当首次为订阅创建发票时,所有的webhook事件似乎都会同时启动。应该如何处理?请注意,我只想在周期结束时更新metered usage amount一次。

我的代码目前是这样的:

def stripe_webhook(request):
if event_type == 'invoice.created':
subscription_item_id = [item['subscription_item'] for item in stripe_data_obj['lines']['data'] if item['plan']['usage_type'] == 'metered'][0]
data_usage = user.get_data_usage(start_date, end_date)
usage = stripe.UsageRecord.create(
quantity=data_usage,
timestamp=int(time.time()),
subscription_item=subscription_item_id,
action = 'set'
)

如果您想手动将行项目添加到发票中,那么您肯定可以对此进行测试。这个想法是让你的客户试用几分钟。创建的第一张发票是为试用版创建的,您可以忽略该发票和所有相关事件。几分钟后,当试用期结束时,将创建一个新发票,并向您的端点发送一个invoice.created事件。这将允许您修改新发票,并添加本月要收取的额外金额/费用。

为此,您将使用创建订阅API并传递trial_end参数作为表示未来几分钟的unix时间戳。

不过,如果您真的想报告过度使用情况,您可以使用此处记录的计费和使用记录:https://stripe.com/docs/billing/subscriptions/metered-billing

最新更新