我最近更改了计划的名称,包括其ID。
我的一些计划具有相同的结构(相同的金额,期限,试用期等),只是名称已更改。
使用Stripe API,我希望将所有当前客户转移到功能相似的新计划中。
问题在于,我现在不想收费,也不想更改其期限,只需更改Stripe订阅。
我非常确定可以使用更新订阅 API端点,但是可以通过试用billing_cycle_anchor和days_until_due进行操作。
我希望这已经完成,并且有人已经对此有一个可行的解决方案了:)
由于与API相关,因此不需要特定的语言。
答案 0 :(得分:0)
根据您的描述,听起来这应该是一个相当容易的过渡!就是说,当我尝试进行任何 订阅类型更改时,我的建议是首先在Stripe的测试模式下进行尝试。
如果您的旧订阅计划和新订阅计划的期限相同(即monthly -> monthly
),则结算期将不会更改,并且条带化不会尝试收款,直到当前的账单期结束为止。
以下是Stripe要说的:
https://stripe.com/docs/billing/subscriptions/upgrading-downgrading
如果两个计划具有相同的计费周期(
interval
和interval_count
的组合),则订阅将保留相同的计费日期。Stripe立即尝试为这些订阅更改付款:
- 从不需要付款(例如由于试用或免费计划的订阅)到付费订阅
- 结算时间更改
关于如何实施此过程:
proration
的变化,请确保通过prorate=false
https://stripe.com/docs/api/subscriptions/update /v1/invoices/upcoming
端点也可以是一个有用的工具,可以预览下一个计费期的订阅更改情况。
您随时可以预览客户即将收到的发票。这将向您显示所有待处理的费用,包括订阅续订费用,发票项目费用等。它还将向您显示适用于客户的任何折扣。 [...]您可以预览更新订阅的效果,包括将按比例分配的预览。
答案 1 :(得分:0)
这是对我问题的务实回应。它将计划更新为另一个具有相同属性(重复,金额等)的计划。
stripe
还有def stripe(method, url, **kwargs):
headers = {
'Stripe-Version': '2019-08-14'
}
response = getattr(requests, method)(
'https://api.stripe.com/v1{0}'.format(url),
auth=('STRIPE_PRIVATE_KEY', ''),
headers=headers,
timeout=15,
**kwargs
)
response.raise_for_status()
return response
函数:
class ImperativeUserManager {
private(set) var currentUser: User? {
didSet {
if oldValue != currentUser {
NotificationCenter.default.post(name: NSNotification.Name("userStateDidChange"), object: nil)
// Observers that receive this notification might then check either currentUser or userIsLoggedIn for the latest state
}
}
}
var userIsLoggedIn: Bool {
currentUser != nil
}
// ...
}