Stripe订阅模式下如何为关联账户设置应用手续费?
解决Stripe订阅模式下关联账户应用手续费的问题
报错原因
Stripe Checkout Session在subscription订阅模式下不支持payment_intent_data参数,该参数仅适用于payment一次性支付模式,这就是你收到报错的直接原因。
如何在订阅中设置关联账户应用手续费
可以为订阅设置应用手续费,但需要换用以下两种正确方式:
方案1:创建价格时预先配置手续费比例
在创建产品的默认价格时,直接指定手续费比例,后续基于该价格创建的所有订阅都会自动应用此设置:
var options = new ProductCreateOptions { Name = "new product", DefaultPriceData = new ProductDefaultPriceDataOptions { UnitAmount = price, Currency = "pln", // 示例:设置10%的手续费,数值为百分比的整数形式 ApplicationFeePercent = 10 }, Expand = new List<string> { "default_price" } }; var requestOptions = new RequestOptions { StripeAccount = stripeAccountId, }; _productService.Create(options, requestOptions);
方案2:创建Checkout Session时为单订阅设置手续费
如果需要针对特定订阅单独配置手续费,可以在Session的SubscriptionData中指定比例,无需使用PaymentIntentData:
var options = new SessionCreateOptions { LineItems = new List<SessionLineItemOptions> { new SessionLineItemOptions { Price = "{{PRICE_ID}}", Quantity = 1, }, }, Mode = "subscription", SuccessUrl = "https://example.com/success", CancelUrl = "https://example.com/cancel", SubscriptionData = new SessionSubscriptionDataOptions { // 示例:设置10%的手续费 ApplicationFeePercent = 10 } }; var requestOptions = new RequestOptions { StripeAccount = "{{CONNECTED_ACCOUNT_ID}}", }; var service = new SessionService(); Session session = service.Create(options, requestOptions);
补充说明
- 若需要固定金额的手续费而非比例,需通过发票Webhook实现:在发票生成后,调用API添加固定金额的手续费项。这种方式复杂度较高,仅在特殊场景下推荐使用。
- 确保你的平台账户与关联账户的Connect配置正确(如使用Standard/Express账户,且已开通手续费相关权限)。
内容的提问来源于stack exchange,提问作者patriczi
相关产品推荐
相关产品推荐

