条带计量计费方式
Stripe metered billing approach
我准备将 stripe 集成为我客户网站的支付网关。我客户的计划是根据每个月该组织的活跃用户数向该组织收费。例如,如果组织有 10 个用户,只有 8 个处于活动状态,那么在月底时,组织将被收取 8 x 每个用户每月 20 美元 = 160 美元的费用。每个月的活跃用户数可能会有所不同。
那么,考虑到上述情况,您能否就以下有关如何在 stripe 下进行设置的问题向我说明一下?
- 组织必须在月底收费
- 如果组织在月中订阅,则应按比例收费。 (示例:订阅日期是 3 月 10 日,假设我们在最后一天 3 月 31 日,组织在 3 月 31 日有 6 个活跃用户,那么 20/31 天 * 20 * 6 = 77.42 美元是组织必须支付的费用)
如果有的话,你能帮我提供步骤和建议吗?
谢谢,
赫曼特
这其实很简单。
你需要结合 Stripe 的 metered billing with a billing cycle anchor.
首先,您需要为结算创建一个“价格”。这可以通过 API 来完成。注意 interval
、usage_type
、currency
和 unit_amount
:
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
const price = await stripe.prices.create({
currency: 'usd',
recurring: {
interval: 'month',
usage_type: 'metered'
},
product_data: {
name: 'Gold special',
},
nickname: 'Gold special price',
unit_amount: 3000,
});
然后您需要创建一个订阅,确保不要传入 quantity
参数。确保记录输出 subscription item ID
- 这用于报告使用情况。
创建付款后,您需要使用 billing cycle anchor
设置订阅。锚是当前 UNIX 时间戳的 UNIX 时间戳(以秒为单位)。
为了达到您想要的效果,您需要创建一个在当月 31 日触发的锚点。当给定的月份没有 31 号时,将在该月的最后一天触发发票:
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
const subscription = await stripe.subscriptions.create({
customer: 'cus_4fdAW5ftNQow1a',
items: [
{
price: 'price_CBb6IXqvTLXp3f',
},
],
billing_cycle_anchor: 1611008505, // Calculate current time in seconds until anchor date
});
这将按照文档中的说明自动按比例分配。
我给出的两个示例非常简单,您可以进行更多配置,但我希望它们能帮助您作为起点。请阅读答案顶部的两个文档链接,了解如何配置您可能需要的所有其他内容。
我准备将 stripe 集成为我客户网站的支付网关。我客户的计划是根据每个月该组织的活跃用户数向该组织收费。例如,如果组织有 10 个用户,只有 8 个处于活动状态,那么在月底时,组织将被收取 8 x 每个用户每月 20 美元 = 160 美元的费用。每个月的活跃用户数可能会有所不同。
那么,考虑到上述情况,您能否就以下有关如何在 stripe 下进行设置的问题向我说明一下?
- 组织必须在月底收费
- 如果组织在月中订阅,则应按比例收费。 (示例:订阅日期是 3 月 10 日,假设我们在最后一天 3 月 31 日,组织在 3 月 31 日有 6 个活跃用户,那么 20/31 天 * 20 * 6 = 77.42 美元是组织必须支付的费用)
如果有的话,你能帮我提供步骤和建议吗?
谢谢, 赫曼特
这其实很简单。
你需要结合 Stripe 的 metered billing with a billing cycle anchor.
首先,您需要为结算创建一个“价格”。这可以通过 API 来完成。注意 interval
、usage_type
、currency
和 unit_amount
:
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
const price = await stripe.prices.create({
currency: 'usd',
recurring: {
interval: 'month',
usage_type: 'metered'
},
product_data: {
name: 'Gold special',
},
nickname: 'Gold special price',
unit_amount: 3000,
});
然后您需要创建一个订阅,确保不要传入 quantity
参数。确保记录输出 subscription item ID
- 这用于报告使用情况。
创建付款后,您需要使用 billing cycle anchor
设置订阅。锚是当前 UNIX 时间戳的 UNIX 时间戳(以秒为单位)。
为了达到您想要的效果,您需要创建一个在当月 31 日触发的锚点。当给定的月份没有 31 号时,将在该月的最后一天触发发票:
const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc');
const subscription = await stripe.subscriptions.create({
customer: 'cus_4fdAW5ftNQow1a',
items: [
{
price: 'price_CBb6IXqvTLXp3f',
},
],
billing_cycle_anchor: 1611008505, // Calculate current time in seconds until anchor date
});
这将按照文档中的说明自动按比例分配。
我给出的两个示例非常简单,您可以进行更多配置,但我希望它们能帮助您作为起点。请阅读答案顶部的两个文档链接,了解如何配置您可能需要的所有其他内容。