#ruby-on-rails
#ruby-on-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
Ответ №1:
См. Документ: 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
Надеюсь, это поможет