我正在使用 Rails 4.2,并尝试集成 Stripe Checkout (https://stripe.com/docs/checkout/guides/rails https://stripe.com/docs/checkout/guides/rails)在我的 Rails 应用程序中,有一个我在任何地方都没有看到过的场景。注意:我尝试了许多在线资源的自定义表单集成,但无法使其正常工作,因此选择尝试结账。
在我的 Rails 应用程序中,我有一个订单表,我想要完成的主要任务是拥有一个表单,用户可以在其中提交个人信息(非付款)来下订单。然后,条带结帐集成将允许他们付款;但是,如果没有记录条带费用,则不会在数据库中创建订单记录。我无法使用 stripe 建议的单独的“收费”控制器来完成此操作,并且还尝试将 stripe 代码合并到我的订单控制器中(见下文)。
我应该注意的是,我HAVE能够获得结帐按钮以提交到 stripe 并处理费用,但是HAVE NOT能够在我的数据库中创建订单记录。
我已经广泛搜索了这个问题的答案(目前正在等待条纹支持的回复)。任何建议将不胜感激!
订单控制器.rb
(这是我尝试将他们建议的费用控制器中的条带代码合并到我自己的订单控制器中的示例。我现在不确定在处理费用后要做什么以使其提交表单)
def create
@order = Order.new(order_params)
customer = Stripe::Customer.create(
:email => '[email protected] /cdn-cgi/l/email-protection',
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => 5000,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
render 'new'
end
订单/new.html.erb
(我省略了表单中所有其他字段的代码,这仅显示了我的表单提交按钮和条带结账按钮。理想情况下,我可以将这些操作合并到一个按钮中,或者仅在付款成功处理时才进行提交穿过条纹)
<%= form_for @order do |f| %>
// lots of form fields
<%= f.submit %>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="A month's subscription"
data-amount="500"></script>