我可以对订阅和目的地费用(关联账户)使用条带结账吗?

时间:2021-03-20 15:16:53

标签: stripe-payments

我正在尝试通过已连接的帐户使用 Stripe Checkout。我可以在其中使用 transfer_data["destination"]application_fee_percent 创建订阅。

预期的流程:

  1. 创建结帐会话(服务器端)
checkout_session = stripe.checkout.Session.create(
            success_url=domain_url + "/success.html",
            cancel_url=domain_url + "/canceled.html",
            payment_method_types=["card"],
            mode="subscription",
            line_items=[
                {
                    "price": priceId,
                    "quantity": 1
                }
            ],
            customer=customerId)
  1. 将用户重定向到 Stripe 结帐页面
  2. 用户输入卡的详细信息并订阅

我尝试使用 subscription_data["application_fee_percent"] 和 Stripe-Account 设置。 但这不起作用,因为找不到客户。因为我猜所有的客户都是在平台账户上创建的,而不是连接的账户(我想保存)

所以我的问题是:使用 Checkout 有什么方法可以做到这一点?

我的另一个选择是:

  1. 收集卡信息以创建付款方式
  2. 使用 application_fee_percent 和 transfer_data[destination] 创建订阅。

但我更喜欢使用 Checkout 来收集卡片详细信息,这在我看来是一个更好、更简单的用户流程......

所有建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

我认为这完全符合您的假设,但遇到了错误:

Error: Can only apply a subscription application_fee_percent when the Checkout Session is made on behalf of another account (using an OAuth key or the Stripe-Account header).

我假设您遇到了这种情况。我毫不犹豫地查看了 docs,然后查看了 changelog(对于我使用的 stripe-node),并找到了我需要的提示:

<块引用>

在订阅中添加transfer_data[amount_percent]

经过我的测试,我可以确认您可以这样做,您只需要使用 amount_percent (API ref) 使用 95% 传输而不是 5% 应用程序费用(但要注意费用如何影响资金流)。

最重要的是,你可以这样做

checkout_session = stripe.checkout.Session.create(
        success_url=domain_url + "/success.html",
        cancel_url=domain_url + "/canceled.html",
        payment_method_types=["card"],
        mode="subscription",
        line_items=[
            {
                "price": priceId,
                "quantity": 1
            }
        ],
        customer=customerId),
        subscription_data={
          transfer_data={
            destination='acct_1234',
            amount_percent=95
          }
        }