如何在 Stripe 的 Checkout 会话中添加试用期

Posted

技术标签:

【中文标题】如何在 Stripe 的 Checkout 会话中添加试用期【英文标题】:how to add trial period in Checkout session in Stripe 【发布时间】:2022-01-18 06:46:32 【问题描述】:

我有这个代码:

const session = await stripe.checkout.sessions.create(
    billing_address_collection: 'auto',
    payment_method_types: ['card'],
    customer_email: email,
    line_items: [
        
        price: priceID,
        // For metered billing, do not pass quantity
        quantity: 1,
        ,
    ],
    // subscription_data: 
    mode: 'subscription',
    success_url: `$YOUR_DOMAIN/gen_trainerclientlist`,
    cancel_url: `$YOUR_DOMAIN/cancel.html`,
    );

我想补充一下:

    subscription_data: 
       trial_end=1605387163
    

但无论我把它放在哪里,它都不起作用!我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

为了将来参考,我做错的是我定义trial_end的方式。

这是一个整体的功能:

var priceID = "price_1K6dU7IPT89VeZtCF2YLsVNo"
    console.log(priceID)
    const session = await stripe.checkout.sessions.create(
    billing_address_collection: 'auto',
    payment_method_types: ['card'],
    customer_email: email,
    line_items: [
        
        price: priceID,
        // For metered billing, do not pass quantity
        quantity: 1,
        ,
    ],
    subscription_data: 
        trial_end: Math.floor(+new Date() / 1000) + 15 * 24 * 60 * 60,
    ,
    mode: 'subscription',
    success_url: `$YOUR_DOMAIN/success`,
    cancel_url: `$YOUR_DOMAIN/login`,
    );

res.redirect(303, session.url)

【讨论】:

以上是关于如何在 Stripe 的 Checkout 会话中添加试用期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Stripe Checkout 中添加增值税?

Stripe Checkout 会话的有效期是多久?

获取与 Stripe 结帐会话关联的费用 ID

无法将价格传递给 Stripe Checkout nodejs

Stripe - 检索结帐会话的 line_items

Stripe - 如何在 Checkout.Session 中获取账单地址信息