【发布时间】:2013-12-01 17:25:19
【问题描述】:
我正在尝试使用 rails 应用程序中的自定义集成来实施Stripe Checkout - 我的结帐表单显示一个绿色复选标记,表示它已提交,但尚未处理付款。简单的集成效果很好,我网站其他部分的订阅付款也是如此。
与简单集成一样,我试图将自定义集成脚本放在 form_tag 中 - 我遵循了 Rails Checkout guide,不幸的是,它只是为简单集成而编写的。像指南一样,我有一个费用控制器,具有新的和创建操作来显示表单和创建费用。
收费控制器:
class ChargesController < ApplicationController
def new
end
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
end
在我的新视图中,表单设置如下:
<%= form_tag charges_path do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton" class="btn btn-large btn-primary">Buy Now</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= ENV["STRIPE_PUBLIC_KEY"] %>',
image: '/assets/my_logo.png',
token: function(token, args) {
// Use the token to create the charge with a server-side script.
}
});
document.getElementById('customButton').addEventListener('click', function(e) {
// Open Checkout with further options
handler.open({
name: 'My Company',
description: 'Product ($60.00)',
amount: 60*100,
shippingAddress: true
});
e.preventDefault();
});
</script>
<% end %>
我已经尝试了几乎所有我能想到的方法,但不会提交表单来触发创建操作。我看到了使用服务器端脚本的说明,但是任何人都可以指出我可能缺少的正确方向吗?
非常感谢任何帮助!谢谢!
【问题讨论】:
标签: javascript ruby-on-rails stripe-payments