Прием платежей при регистрации устройства. - PullRequest
0 голосов
/ 30 ноября 2018

Как я могу принимать полосовые платежи во время регистрации пользователя?

'Вот мой контроллер подписки'

Я видел, как другие люди пытались сделать это, но не нашли решения.Пожалуйста помоги.Единственный раз, когда можно создать подписку - это после того, как пользователь зарегистрируется.Это потому, что у меня есть

before_action: authenticate_user !, кроме: [: new]

 class SubscriptionsController < ApplicationController
  before_action :authenticate_user!, except: [:new]
  before_action :redirect_to_signup, only: [:new]

  def show
  end

  def new
  end

   def create
    Stripe.api_key = Rails.application.secrets.stripe_secret_key
      token = params[:stripeToken]

      customer = if current_user.stripe_id?
                 Stripe::Customer.retrieve(current_user.stripe_id)
               else
                 Stripe::Customer.create(email: current_user.email, :source => token)
               end

     subscription = customer.subscriptions.create(
      plan: "plan_DwAtwGCQIFXqEm"
    )


     options = {
      stripe_id: customer.id,
      stripe_subscription_id: subscription.id,
      subscribed: true
    }


    current_user.update(options)

    redirect_to root_path, notice: "Your subscription was setup successfully!"
  end

  def show
  end

  def destroy
    customer = Stripe::Customer.retrieve(current_user.stripe_id)
    customer.subscriptions.retrieve(current_user.stripe_subscription_id).delete
    current_user.update(stripe_subscription_id: nil)

    redirect_to root_path, notice: "Your subscription has been canceled."
  end

  private

  def redirect_to_signup
      if !user_signed_in?
        session["user_return_to"] = new_subscription_path
        redirect_to new_user_registration_path
      end
    end
end

1 Ответ

0 голосов
/ 30 ноября 2018

В Документация показывает совсем немного другое.Customer, Items {plan} обязательно !.

Попробуйте это:

subscription = Stripe::Subscription.create(
  :customer => customer.id,
  :items => [
    {
      :plan => "plan_DwAtwGCQIFXqEm",
    },
  ]
)
...