我正在尝试设置新的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
挑选。
我正在听'checkout.session.completed'
的网络鸣叫,以在我的后端升级帐户
我正在听'invoice.created'
,当status=draft
时,我设置了默认税率(因为我们有一个小时的时间可以在创建后对其进行修改)
我应该改为听'customer.subscription.created'
并直接在订阅上设置它,而不是在每张发票上都设置它吗?
首次订购的客户似乎未应用税率,因为该状态不会像在订阅周期中一样在一个小时内保持在草稿中。是因为我处于测试模式吗?
任何帮助将不胜感激
答案 0 :(得分:4)
向Stripe技术支持寻求帮助,我得到了:
”“目前,我们目前无法设置 通过Checkout缴纳税率,但这是我们路线图中的一项功能 以后再添加。”
因此,对于那些需要通过新的Stripe Checkout会话设置订阅税的人,这是一个解决方法。以下概述将帮助您从第一个发票和后续的订阅发票中对您的订阅加税!
- 创建新客户并将客户ID存储在您的后端:
new_customer = stripe.Customer.create(
email = user.email
)
- 在订阅计划上为您的税创建发票项目:(这将自动拉入第一个订阅计划)
new_tax_invoice = stripe.InvoiceItem.create(
customer=new_customer['id'],
amount=int(plan.price*20),
currency="eur",
description="VAT"
)
- 创建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'],
)
在条纹仪表板上使用税率创建税对象
收听Stripe Webhook中的 customer.subscription.created ,并使用从步骤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']]
)
- 收听Stripe Webhook进行 checkout.session.completed ,并使用stripe_subscription_id和stripe_customer_id在后台进行必要的整理
答案 1 :(得分:1)
您暂时无法为使用会话创建的订阅设置税率。这是Stripe正在进行的工作,但现在您必须通过API创建具有税率的订阅。