我确信这很简单,但我无法弄清楚。我是 stripe 新手,这是我第一次在我的网站上配置它。我正在使用 Stripe 库中的以下 javascript 代码进行收费。
<script src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="Qsnag One Time Fee"
data-amount="<%=@amount*100%>"
data-email="<%=current_user.email%>">
</script>
正如您在此处看到的,我的金额是一个变量,具体取决于用户选择的计划。我的问题是如何访问充电 Controller 中的金额来创建充电。我的收费 Controller 代码如下
def create
customer = Stripe::Customer.create(
:email => params[:stripeEmail],
:card => params[:stripeToken],
:plan => @plan_id,
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount*100,
:description => 'Qsnag customer',
:currency => 'usd'
)
rescue Stripe::CardError => e
flash[:error] = e.message
end
正如您所料,我在 Charge#create 中的 @amount
为 0。我想避免创建自定义表单并使用 javascript API。有没有办法从我的费用 Controller 中的 javascript API 访问金额。
最佳答案
我将金额添加为隐藏字段并将脚本放入表单标记中。
这是更新的答案:
<form action="/charge" method="post">
<script src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="Qsnag One Time Fee"
data-amount="<%=@amount*100%>"
data-email="<%=current_user.email%>">
</script>
<input type="hidden" name="amount" value="<%=@amount*100%>"/>
<input type="hidden" name="plan" value="<%=@plan%>"/>
</form>
关于javascript - 使用 Ruby on Rails 剥离 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23281556/