我使用条带运行本地服务器,当我提交付款表单时收到错误。
class ChargesController < ApplicationController
def create
//below is the reason I got error for
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:source => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => params[:amount],
:description => 'Growth Hacking Crash Course',
:currency => 'jpy'
)
purchase = Purchase.create(email: params[:stripeEmail], card: params[:stripeToken], amount: params[:amount], description: charge.description, currency: charge.currency, customer_id: customer.id, product_id: 1, uuid: SecureRandom.uuid)
redirect_to purchase
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to new_charge_path
end
end
我不知道为什么会收到这个错误。我需要你的帮助!!!
答案 0 :(得分:2)
您的代码是正确的。但是,此错误消息表示您尝试在客户创建请求中使用的卡令牌(在params[:stripeToken]
变量中)已被使用。
条带标记只能在单个请求中使用。之后,令牌被消耗,无法再次使用。
您必须使用Checkout或Stripe.js或直接使用create token API端点创建新的卡片令牌。