You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Blazor多租户预约平台中集成Stripe并设置手续费的技术问询

问题解答

1. {{CONNECTED_ACCOUNT_ID}} 是什么?

不是你的平台Stripe账户ID,它是服务提供者的Stripe Connect关联账户ID。

你的场景中,每笔支付扣除平台手续费后,剩余部分需要转给服务提供者,因此TransferData.Destination必须填写服务提供者在你的平台下创建的Connect账户ID。你的平台账户会通过ApplicationFeeAmount字段收取约定比例的手续费,剩余资金会自动转入这个关联账户。

2. StripeConfiguration.ApiKey 是客户端API密钥吗?

不是,这里填写的是你的平台Stripe账户的Secret Key(秘钥),格式为sk_xxx开头。

客户端API密钥以pk_xxx开头,仅用于前端(比如加载Stripe.js),而创建Checkout Session的逻辑必须放在后端执行,绝对不能把Secret Key暴露到前端页面,否则会引发安全风险。

场景适配提示

  • 针对一次性预约,代码里的Mode = "payment"配置正确;
  • 针对定期预约(每月自动扣款),需要将Mode修改为"subscription",同时调整LineItems使用订阅型Price,并配置SubscriptionData来设置自动扣款周期。

参考代码示例

StripeConfiguration.ApiKey = "sk_test_ESDdbUTrLo4e9SC7uoQqlhd2";

var options = new Stripe.Checkout.SessionCreateOptions
{
    LineItems = new List<Stripe.Checkout.SessionLineItemOptions>
    {
        new Stripe.Checkout.SessionLineItemOptions
        {
            PriceData = new Stripe.Checkout.SessionLineItemPriceDataOptions
            {
                Currency = "usd",
                ProductData = new Stripe.Checkout.SessionLineItemPriceDataProductDataOptions
                {
                    Name = "T-shirt",
                },
                UnitAmount = 1000,
            },
            Quantity = 1,
        },
    },
    PaymentIntentData = new Stripe.Checkout.SessionPaymentIntentDataOptions
    {
        ApplicationFeeAmount = 123,
        TransferData = new Stripe.Checkout.SessionPaymentIntentDataTransferDataOptions
        {
            Destination = "{{CONNECTED_ACCOUNT_ID}}",
        },
    },
    Mode = "payment",
    SuccessUrl = "https://example.com/success",
};
var service = new Stripe.Checkout.SessionService();
service.Create(options);

内容的提问来源于stack exchange,提问作者Enrico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:52:18