0

我正在使用条纹为我正在制作的网站收款。

这是我的看法:

%script.stripe-button{"data-amount" => "10000", "data-description" => "A Generous Donation", "data-key" => Rails.configuration.stripe[:publishable_key], src: "https://checkout.stripe.com/v2/checkout.js"}
%br
%b Amount:
%br
%input
%script.stripe-button{"data-amount" => "", "data-description" => "A Generous Donation", "data-key" => Rails.configuration.stripe[:publishable_key], src: "https://checkout.stripe.com/v2/checkout.js",  style:"padding-left: 30px;"}

这是我的控制器:

def create
    # Amount in cents
    @amount = 500

    customer = Stripe::Customer.create(
      :email => 'example@stripe.com',
      :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

对于我的第一个按钮,我正在尝试将数据数量发送到数量变量。第二,我试图从输入框中收集一个值,并在条纹按钮中设置@amount 变量和数据量标签来收集付款。我该怎么做呢?

4

2 回答 2

0

这可以通过一点 JS 轻松完成。只需处理每个按钮上的点击事件,在处理点击时,data-amount在第一种情况下设置值,或者input在第二种情况下获取值。然后

  • 如果使用表单,请使用适当的名称设置输入的值并提交。
  • 如果您使用 AJAX,只需将其发布为 JSON 或您喜欢的任何内容。

[编辑]

将变量发布到您的控制器后,只需从您发布它的任何地方获取它,所以如果您使用带有

<input type="hidden" name="amount" />

对于您的数据,只需使用

@amount = params[:amount]

在您的控制器中获取值。

[/编辑]

于 2013-09-17T05:36:24.117 回答
0

根据您的描述,这应该与控制器无关。

一旦您在输入中输入了有效的数字,看起来您只需要设置第二个按钮的数量。

这可以通过 jQuery 轻松完成。演示代码:

$('#that_input').on('focusout', function(){
  if typoeof($(this).val()) == 'number'
    $('#second_button').data('amount', $(this).val())
});

这段代码的作用是在输入完成并聚焦时将 input 的值分配给第二个按钮的 data-ammount 属性,如果该输入是有效数字。

于 2013-09-17T07:19:41.207 回答