Stripe和Rails 4 App Stripe :: InvalidRequestError

Jos*_*osh 3 ruby-on-rails

我看着ryan bates rails在条纹集成上施展.一切都差不多顺利到最后.我觉得他的演员有点过时了,也许条纹更新了api.我收到此错误

SubscriptionsController中的Stripe :: InvalidRequestError.

它突出显示了我的订阅模型页面,特别是客户创建部分

class Subscription < ActiveRecord::Base
  belongs_to :plan
  belongs_to :user
  validates_presence_of :plan_id
  validates_presence_of :email

  attr_accessor :stripe_card_token

  def save_with_payment
    if valid?
        customer = Stripe::Customer.create(description: email, plan: plan_id, card: stripe_card_token)
        self.stripe_customer_token = customer.id
        save!
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的订阅控制器

class SubscriptionsController < ApplicationController
  before_action :authenticate_user!

  def new
    plan = Plan.find(params[:plan_id])
    @subscription = plan.subscriptions.build
    @useremail = current_user.email
  end

  def create
    @subscription = current_user.build_subscription(subscription_params)
    if @subscription.save_with_payment
      redirect_to @subscription, :notice => "Thank you for subscribing!"
    else
      render :new
    end
  end

  def show
    @subscription = Subscription.find(params[:id])
  end

  private

  def subscription_params
      params.require(:subscription).permit(:plan_id, :email)
  end
end
Run Code Online (Sandbox Code Playgroud)

小智 5

您不允许控制器中方法中的:stripe_card_token参数subscription_params.

要允许它,请:stripe_card_token在该方法中添加许可列表:

def subscription_params
  params.require(:subscription).permit(:plan_id, :email, :stripe_card_token)
end
Run Code Online (Sandbox Code Playgroud)