Rails: как обрабатывать несколько подписок для одного пользователя - PullRequest
0 голосов
/ 10 апреля 2019

Я могу назначить несколько подписок пользователю, но проблема в том, что каждый раз, когда я назначаю новую подписку пользователю, я перезаписываю 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 Ответ

0 голосов
/ 10 апреля 2019

См. Документ: 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

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...