我正在尝试通过已连接的帐户使用 Stripe Checkout。我可以在其中使用 transfer_data["destination"] 和 application_fee_percent 创建订阅。
预期的流程:
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["application_fee_percent"] 和 Stripe-Account 设置。 但这不起作用,因为找不到客户。因为我猜所有的客户都是在平台账户上创建的,而不是连接的账户(我想保存)
所以我的问题是:使用 Checkout 有什么方法可以做到这一点?
我的另一个选择是:
但我更喜欢使用 Checkout 来收集卡片详细信息,这在我看来是一个更好、更简单的用户流程......
所有建议将不胜感激。谢谢。
答案 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
}
}