订阅模式下的条纹结账会话,免费试用且无需请求付款方式

Stripe checkout session in subscription mode, with free trial and without requesting payment method

Stripe Checkout 是否可以删除付款方式字段或使其不再“必需”API?

这是我的后端代码:

const freeTrial = {
    trial_from_plan:  realSubscription.id === 4 ? true : false
} 

if(customerStripeId != undefined || customerStripeId != null){
    const session = await stripe.checkout.sessions.create({
        mode: 'subscription',
        payment_method_types: ['card'],
        line_items: [
            {
                price: formData.monthlySetting === true ? realSubscription.monthly_price_id : realSubscription.annual_price_id,
                quantity: 1
            }
        ],
        customer: customerStripeId,
        success_url: `${BASE_URL}/success?session_id={CHECKOUT_SESSION_ID}`,
        cancel_url: BASE_URL,
        subscription_data: freeTrial
    })
    return {customerHasId: 'true', sessionData: session }
}else{
    return {customerHasId: 'false'}
}

在 Stripe 中 UI 我为我的第一个计划设置了 30 天的试用期。它正在工作,但是当我结帐时,Stripe 仍然要求提供付款方式。 就像 Stripe 的这个结账演示: link to demo

今天这是不可能的。 Stripe Checkout 需要有效的付款方式详细信息,以最大限度地提高您在试用结束时获得第一张发票付款的机会。结帐时无法跳过付款方式详细信息收集。

如果您不想预先使用付款方式,那么您可以在不使用 Stripe Checkout 的情况下创建带有试用版的订阅。