Как я могу принимать полосовые платежи во время регистрации пользователя?
'Вот мой контроллер подписки'
Я видел, как другие люди пытались сделать это, но не нашли решения.Пожалуйста помоги.Единственный раз, когда можно создать подписку - это после того, как пользователь зарегистрируется.Это потому, что у меня есть
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