go - 与一次性付款相反的连接帐户和创建订阅
问题描述
我是一个小市场。有推荐人/关联账户 (A) 和用户 (B)。推荐带来新用户,用户是为某些服务付费的人。并且付款将被拆分:90% 将分配给带来特定用户的推荐人,10% 将分配给市场。
用户有 2 个选项:一次性付款或创建订阅。我已经实现了前者,它工作正常,这是代码的一部分:
//for one time payments - all is good
if md == stripe.CheckoutSessionModePayment {
stripeParams.PaymentIntentData = &stripe.CheckoutSessionPaymentIntentDataParams{
ApplicationFeeAmount: stripe.Int64(appFeeInCents), // 10% of a price, in cents
TransferData: &stripe.CheckoutSessionPaymentIntentDataTransferDataParams{
Destination: stripe.String(stripeRefr.StripeAccountId), //Stripe connected account id of a referral, retrieved from Db
},
//important!
OnBehalfOf: stripe.String(stripeRefr.StripeAccountId), //Stripe connected account id of a referral, retrieved from Db
}
} else {
//for subscriptions - this won't work
//how to implement it?
// stripeParams.SubscriptionData = &stripe.CheckoutSessionSubscriptionDataParams{
// // Items: []*stripe.SubscriptionItemsParams{
// // {
// // price: stripe.String("price_id_from_stripe_123"),
// // },
// // },
// // TransferData: &stripe.InvoiceTransferDataParams{
// // Destination: stripe.String(stripeRefr.StripeAccountId),
// // },
// // ApplicationFeePercent: stripe.Float64(cfg.Stripe.ApplicationFeePercent),
// ApplicationFeePercent: stripe.Float64(10),
// }
}
sess, err := session.New(stripeParams)
我想为订阅做同样的事情。怎么做?
这段代码是 Go 语言,但我也能理解其他语言的代码。
解决方案
下面的代码应该可以工作
params := &stripe.SubscriptionParams{
Customer: stripe.String("cus_..."),
Items: []*stripe.SubscriptionItemsParams{
{
Price: stripe.String("price_..."),
},
},
ApplicationFeePercent: stripe.Float64(10),
TransferData: &stripe.SubscriptionTransferDataParams{
Destination: stripe.String("acct_..."),
},
}
推荐阅读
- django - Django ORM 中的动态视图 - 最佳方法?
- docker - docker 中的 docker 只读挂载是什么意思?
- git - 如何合并到最后一个非合并提交?
- sql - 如何将 Charindex 用于一个或另一个字符
- angular - npm 开始出现 sass-loader 错误时出错
- python - 单击“开始”按钮后程序未按预期运行
- apache-spark-sql - left join 选择重复键
- c# - Unity 2D精灵不翻转
- laravel - Laravel 路由在 2 个环境中与子域一起使用
- python - 在熊猫数据透视表数据框中查找特定索引名称的所有记录的总和