Stripe payments 通过订阅向客户添加/删除附加费用

Stripe payments 通过订阅向客户添加/删除附加费用,stripe-payments,Stripe Payments,根据某些条件,我想向客户收取额外费用,反之亦然-向他们的帐户中添加资金,或者干脆不向他们收取任何费用。 他们都订阅了某个平原。为了能够更改费用,我必须使用账户余额 https://stripe.com/docs/api#create_customer account_balance An integer amount in cents that is the starting account balance for your customer. A negative amount repres

根据某些条件,我想向客户收取额外费用,反之亦然-向他们的帐户中添加资金,或者干脆不向他们收取任何费用。 他们都订阅了某个平原。为了能够更改费用,我必须使用
账户余额

https://stripe.com/docs/api#create_customer

account_balance
An integer amount in cents that is the starting account balance for your customer. A negative amount represents a credit that will be used before attempting any charges to the customer’s card; a positive amount will be added to the next invoice.
但是

然而,这两种方法相互矛盾:第一种方法说“负数代表信用”,而第二种方法用正数500加上额外费用,这也被认为是信用(当我在银行获得信用时,我欠了钱)


那么,哪一个是正确的呢?

当您查看第二个示例时,它会将帐户余额设置为
500
,单位为美分,即5美元,这意味着客户在创建帐户时欠您5美元。由于您正在创建一个客户,并将其设置为一个10美元的月度计划,因此第一张发票的金额为15美元,即计划的10美元,该计划中添加了用户的当前帐户余额so 5美元

例如,如果您想向客户提供4美元的信用额度,以便他的第一张发票是6美元而不是10美元,那么在创建客户时,您可以将他的帐户余额设置为
-400
(-4美元)

另一种解决此设置费用的方法是使用文档中所述的:

有时,您希望向客户添加费用或信用卡,但实际仅在常规计费周期结束时向客户的卡收费。这对于合并多个费用以最小化每笔交易的费用或将基于使用情况的账单总额制成表格非常有用

我发现这更容易处理,因为它直接出现在发票上,而不必查看客户的账户余额来了解发生了什么

如果您想使用此解决方案,您可以阅读上的指南,但想法可能是这样的

  • 创建您的客户(无余额)
  • 为计划设置费(或信贷)创建发票项目
  • 向您的客户订阅该计划
第一张发票将被创建(并立即关闭),并将自动拾取您创建的发票项


对于下一张发票,如果您想向客户的订阅添加信用或费用,您可以监听
invoice.created
webhook并在该点为发票创建发票项。第一张发票需要不同的原因是它总是自动关闭的,因此您不能在webhook中将发票项添加到它中。我该怎么做?从文档中不清楚我是否必须只更新customer.account\u余额或订阅。只需在创建客户或更新客户时使用帐户余额,这与订阅无关(尽管订阅在收取发票费用时使用余额)这取决于您使用的语言,我想,在PHP中,您应该在实例上设置
$my\u customer->account\u balance
属性,然后调用
$my\u customer->save()
如果是订阅,用户是否每月自动收费?也就是说,一旦我通过
stripe\u customer.subscriptions.create(plan:plan\u id)
创建了订阅,我就不必在月底手动(通过编写代码)向他们收费,对吗?他们将自动按条带收费。是的,这就是订阅的目的。一旦你将客户列入月度计划,他每个月都会自动收取费用。因此,如果你今天(12月23日)订阅,他将在一个月后(1月23日)收到费用。
https://support.stripe.com/questions/subscription-setup-fees

For example, if you have a $10 monthly plan called ten-monthly, but want to charge your customer a $5 setup fee, this API call to create a customer would work:

curl -i https://api.stripe.com/v1/customers \
   -u sk_test_mkGsLqEW6SLnZa487HYfJVLf: \
   -d "card[number]=4242424242424242" \
   -d "card[exp_month]=11" \
   -d "card[exp_year]=2015" \
   -d "card[cvc]=314" \
   -d plan=ten-monthly \
   -d account_balance=500