私の計画はStripe :: InvalidRequestError at/orders/26/paymentsであると言います
私の計画のタイトルはありません。
このコードは、計画がすでに存在していないかどうかを確認し、計画を作成していない場合にはそれを確認してユーザーに登録します。私は既に同じIDの計画を持っていて、「計画はすでに存在している」と言っているので、これがうまくいったと思った。このエラーが発生しないようにするにはどうすればよいですか?
これは私のコードです:Rails Stripe IDエラーを取得する "そのような計画はありません"
class PaymentsController < ApplicationController
before_action :set_order
def new
end
def create
@user = current_user
customer = Stripe::Customer.create(
source: params[:stripeToken],
email: params[:stripeEmail],
)
# Storing the customer.id in the customer_id field of user
@user.customer_id = customer.id
@plan = Stripe::Plan.retrieve(@order.service.title)
unless @plan
plan = Stripe::Plan.create(
:name => @order.service.title,
:id => @order.service.title,
:interval => "month",
:currency => @order.amount.currency,
:amount => @order.amount_pennies,
)
else
subscription = Stripe::Subscription.create(
:customer => @user.customer_id,
:plan => @order.service.title
)
end
@order.update(payment: plan.to_json, state: 'paid')
redirect_to order_path(@order)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_order_payment_path(@order)
end
private
def set_order
@order = Order.where(state: 'pending').find(params[:order_id])
end
end
これは何を返しますか? @plan = Stripe :: Plan.retrieve(@ order.service.title) –