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

2024-04-26 19:12:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

根据Subscription lifestyle documentation here,它说invoice.created事件大约发生在invoice.payment_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'
        )

Tags: 数据iddataiftype事件usageinvoice
1条回答
网友
1楼 · 发布于 2024-04-26 19:12:21

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

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

另外,如果您真的想报告超额使用情况,可以使用这里记录的按流量计费和使用记录:https://stripe.com/docs/billing/subscriptions/metered-billing

相关问题 更多 >