【问题标题】:Stripe Checkout - Create Session - Apply Tax Rates on subscriptionsStripe Checkout - 创建会话 - 对订阅应用税率
【发布时间】:2019-12-02 16:48:32
【问题描述】:

我正在尝试设置新的Stripe Checkout Create session。我无法在会话创建期间设置订阅的税率,因为订阅是由 Stripe 自动创建的。

我在仪表板上设置了一个税率,默认为 20% 增值税率。我希望它自动应用于所有订阅。有人可以指导我吗?

stripe.checkout.Session.create(
        payment_method_types=['card'],
        subscription_data={
            'items': [{
            'plan': plan.stripe_plan_name,
            'quantity': 1
            }],
        },
        customer_email = user.email,
        success_url='https://www.jetpackdata.com/success',
        cancel_url='https://www.jetpackdata.com/cancel'
    )

并在客户端由stripe.redirectToCheckout 挑选。

我正在 webhook 上监听 'checkout.session.completed' 以升级我后端的帐户。

我正在收听'invoice.created' 和status=draft 时,我设置了默认税率(因为我们有一个小时可以在创建后对其进行修改)。

我是否应该改为收听 'customer.subscription.created' 并直接在订阅上设置,而不是在每张发票上设置?

第一个客户订阅购买似乎没有应用税率,因为状态不会像在订阅周期中那样保持一个小时的草稿状态。是因为我处于测试模式吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: stripe-sca tax-rate stripe-payments


    【解决方案1】:

    联系 Stripe 技术支持,我得到了这个:

    “目前,我们目前无法设置 Checkout 的税率,但这是我们路线图中的一项功能 将来会添加。”

    因此,对于那些需要使用新的 Stripe Checkout Session 为订阅设置税金的人来说,这里有一个解决方法。以下大纲将帮助您从第一张发票和随后的订阅发票中为您的订阅添加税费!

    1. 创建一个新客户并将客户 ID 存储在您的后端:
    new_customer = stripe.Customer.create(
        email = user.email
    )
    
    1. 在订阅计划中为您的税创建发票项目:(这将自动拉入第一个订阅计划)
    new_tax_invoice = stripe.InvoiceItem.create(
        customer=new_customer['id'],
        amount=int(plan.price*20),
        currency="eur",
        description="VAT"
    )
    
    1. 创建一个 Stripe Session 结账并将 stripe_session.id 移交给客户端的 stripe.redirectToCheckout
    stripe_session = stripe.checkout.Session.create(
        payment_method_types=['card'],
        subscription_data={
            'items': [{
            'plan': plan.stripe_plan_name,
            'quantity': 1
            }],
        },
        customer = new_customer['id'],
        success_url=app.config['STRIPE_SUCCESS_URL'],
        cancel_url=app.config['STRIPE_CANCEL_URL'],
    )
    
    1. 在您的 Stripe Dashboard 上使用您的税率创建一个税务对象

    2. 监听 customer.subscription.created 的 Stripe Webhook 并使用您从第 4 步获得的默认税率 ID 更新订阅对象

    if stripe_webhook['type'] == 'customer.subscription.created':
        stripe.Subscription.modify(
            stripe_webhook['data']['object']['id'],
            default_tax_rates = [app.config['STRIPE_TAX_RATE']]
        )
    
    1. 收听 checkout.session.completed 的 Stripe Webhook 并使用 stripe_subscription_id 和 stripe_customer_id 在您的后端进行必要的内务管理

    【讨论】:

    • 这个解决方案有点用。请注意,您的税收出口将不正确,因为添加的发票项目不会被识别为税收。此外,Stripe 将在 Stripe 结帐页面上显示不正确的未来付款金额:“然后每年/每月 XXX”
    • 这根本行不通,您不能将增值税作为商品添加,否则您也必须对该商品应用增值税。建议这样做是没有意义的。目前,您无法使用 Checkout 进行增值税,期间。我们已经等待这个功能几个月/几年了,但它只是没有推出
    • default_tax_rates 现在可在 Checkout 产品中使用:stripe.com/docs/payments/checkout/…
    【解决方案2】:

    您目前无法为使用 Sessions 创建的订阅设置税率。这是 Stripe 正在做的事情,但现在您必须通过 API 创建带有税率的订阅。

    【讨论】:

    • 这是否意味着我(目前)根本无法使用 Checkout,还是有解决方法?
    • 我想我真正想知道的是:对 Checkout 的增值税支持会在几周、几个月还是一年多之后推出?
    • 现在是 12 月下旬,“新”结帐仍然不支持税率。所以至少还有几个月的时间@moisson。
    • 真是头疼!
    • 好消息是它正在进行中,您目前可以请求测试版的邀请:twitter.com/JoshuaAckerman/status/1298707874202267648
    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 2019-09-29
    • 1970-01-01
    • 2022-12-28
    • 2021-07-29
    • 1970-01-01
    • 2018-02-18
    • 2016-03-04
    相关资源
    最近更新 更多