新 Stripe Checkout 中的税率
Posted
技术标签:
【中文标题】新 Stripe Checkout 中的税率【英文标题】:Tax Rate in new Stripe Checkout 【发布时间】:2019-09-29 13:30:46 【问题描述】:
我在 NodeJS server
上实现了新的 Stripe Checkout
,但我无法指定发票的税率。
据我了解税率应在Payment Intent API 中指定。事实上,新的Checkout
通过其CreateSession 自动创建Payment Intent
(请参阅payment_intent_data
),但我无法在创建时插入税率。 p>
如何做到这一点?我想要实现的是让用户知道Checkout UI
和最终email invoice
中的Tax %。
这是我的代码:
return stripe.checkout.sessions.create(
payment_method_types: [paymentMethod],
line_items: [
name: name,
description: description,
images: [imageUrl],
amount: amount,
currency: currency,
quantity: 1
],
success_url: successUrl,
cancel_url: cancelUrl,
customer: stripeId,
payment_intent_data:
receipt_email: email,
metadata:
userId: userId,
amount: amount,
currency: currency,
ref: ref,
stripeId: stripeId,
details: details
).then(session =>
return res.send(session)
【问题讨论】:
税率仅适用于Invoice
对象,这些对象主要与 Subscriptions
一起使用,而不是此结帐会话创建的一次性付款“订单项”。 stripe.com/docs/api/subscriptions/…stripe.com/docs/api/payment_intents/create我可能会通过电子邮件向 Stripe 发送有关此功能的请求!
@duck 感谢您的回复。那么有没有办法在一次性付款“行项目”中插入税率? :( 我可以让用户知道收取的税款的百分比吗?
我的意思是,这是一个哈希列表,所以我想您可以为税额添加自己的行项目,但它不会使用 Stripe 的税率 atm
@r4id4 我正在寻找相同的设置。您是否设法实现了它,如果是,如何实现?
很遗憾没有
【参考方案1】:
在回答此问题时,Stripe Checkout 不支持税率。
另一种方法是使用“设置”模式 Checkout [1] 收集付款详细信息,然后使用 Checkout 中收集的 PaymentMethod 和您想要使用的税率从您的服务器创建一个 PaymentIntent [2]。
[1]https://stripe.com/docs/payments/checkout/collecting
[2]https://stripe.com/docs/api/payment_intents/create
【讨论】:
w1zeman1p 您能详细说明第 [2] 点吗?我在 PaymentIntent API 文档中找不到任何关于添加税率的参考。default_tax_rates
和 tax_rates
出现在发票和订阅上,但不在 PaymentIntents 上。
很抱歉给您带来了困惑。 PaymentIntent 允许您指定总金额。因此,您将使用设置模式 Checkout 来存储 PaymentMethod,然后计算您自己的税款并将其添加到小计并创建 PaymentIntent。
谢谢 w1zeman1p,这就是我最终要做的事情 - 计算我的税收应用程序端并将总数发送到 Stripe。我将处理 Stripe 之外的税务文书工作。【参考方案2】:
现在支持条带结帐税率。
从“Stripe.net”35.12.0版本开始,您可以在创建新会话时设置默认税率。
var options = new SessionCreateOptions
PaymentMethodTypes = new List<string>
"card",
,
SubscriptionData = new SessionSubscriptionDataOptions
DefaultTaxRates = new List<string>
_STRIPE_OPTIONS.Tax // Your tax rate id
,
Items = new List<SessionSubscriptionDataItemOptions>
new SessionSubscriptionDataItemOptions
Plan = request.PlanId, // Your plan id
,
,
,
Customer = customer.StripeCustomerId,
SuccessUrl = _STRIPE_OPTIONS.SuccessUrl,
CancelUrl = _STRIPE_OPTIONS.CancelUrl
;
var service = new SessionService();
var session = service.Create(options);
如果您正在使用,请不要忘记更新您的 webhook 版本。
【讨论】:
是的,从文档support.stripe.com/questions/… 阅读,如果我们正在通过模式:付款需要在发送付款之前计算税款。如果需要,我最终将增值税作为一个项目传递。【参考方案3】:Stripe Checkout 一次性付款的税率现在处于测试阶段,请参阅此处:https://stripe.com/docs/payments/checkout/taxes
您可以通过电子邮件加入测试计划并试用。
目前,请注意,动态税率仅在美国、欧洲和此处指定的某些国家/地区 (https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-line_items-dynamic_tax_rates) 支持,因此请注意
【讨论】:
以上是关于新 Stripe Checkout 中的税率的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python Flask 自定义 Stripe Checkout
Stripe - 如何在 Checkout.Session 中获取账单地址信息
如何在 Stripe Checkout 仅客户端实现中包含元数据?