ruby-on-rails - Rails:如何为一个用户处理多个订阅
问题描述
我可以为一个用户分配多个订阅,但问题是每次我为一个用户分配一个新订阅时,我都会覆盖subscription_id
.
我仍然可以通过 向用户显示他的所有订阅Stripe::Subscription.list(current_user.stripe_id)
,但无法显示特定订阅,只能显示创建的最后一个订阅。
我目前正在使用的代码:
customer = if current_user.stripe_id?
Stripe::Customer.retrieve(current_user.stripe_id)
else
Stripe::Customer.create(
email: current_user.email,
source: params[:stripeToken]
)
end
begin
product = Stripe::Product.retrieve(@order.project)
rescue Stripe::InvalidRequestError => e
if e.response.http_status == 404
product = Stripe::Product.create(
id: @order.project, # Unqiue Identifier -> In Ordnung etc
name: @order.project, # Produkt name -> In Ordnung
statement_descriptor: 'Mediadesign Web',
metadata: {"Module" => @order.moduls},
type: 'service'
)
end
end
begin
plan = Stripe::Plan.retrieve(product.id)
rescue Stripe::InvalidRequestError => e
if e.response.http_status == 404
plan = Stripe::Plan.create(
id: product.id,
nickname: @order.nickname,
product: product.id,
amount: @order.price * 100,
currency: 'eur',
interval: 'month'
)
end
end
subscription = customer.subscriptions.create(
plan: plan.id
)
current_user.update(
stripe_id: customer.id,
subscription_id: subscription.id
)
redirect_to webdesigns_order_subscriptions_path
解决方案
请参阅文档:https ://stripe.com/docs/api/subscriptions
基本上这个概念是:
订阅允许您定期向客户收费。订阅将客户与您创建的特定计划联系起来。
计划定义订阅的基本价格、货币和计费周期
订阅项允许您创建具有多个计划的客户订阅,从而轻松表示复杂的计费关系。
简而言之,客户将通过计划订阅。
您可以通过传递 plan_id 来检索计划...参见文档:https ://stripe.com/docs/api/plans/retrieve
如果您想获取特定订阅...请参阅文档:https ://stripe.com/docs/api/subscriptions/retrieve
对于特定的 Subscription_item... 参见文档:https ://stripe.com/docs/api/subscription_items/object
对于计划 https://stripe.com/docs/api/plans
希望能帮助到你 :)
推荐阅读
- javascript - React Markdown动态需要MD文件,图像相对路径不起作用
- r - How to extend dataframe based on values in the same dataframe in R
- reactjs - 如何在 react-native 中访问 createStackNavigator 组件中的导航道具
- javascript - 如何将 json 传递给函数?
- powershell - 无法在来自 PowerShell 中的 JSON 的关联数组上调用 getEnumerator()
- scheduling - 变量分支与约束分支
- sprite-kit - 操作由 SKEmitterNode 生成的粒子
- grails - 将 grails 插件部署到 Nexus 的问题
- c++ - 定义参数化类的联合
- sql - 使用 R 从 SQL 数据库中获取 mytable 的 summary() 而不将其写入我的 R 会话