如何动态更改Rails中使用Stripe收取的价格?

沙拉高

我正在尝试将Stripe集成到我的Rails应用程序中。我在他们的网站上关注了该教程,并且大部分内容都可以正常工作。我的第一个问题是如何动态更改向客户收取的价格。

现在,@ amount的硬编码为500。如何将@price(来自new.html.erb或控制器)传递给'create'操作?

def new
    @project = Project.find(params[:project_id])
    number_of_testers = @project.testers
    @price = 30 * number_of_testers
end

def create
  # Amount in cents
  # @amount = 500



  customer = Stripe::Customer.create(
    :email => params[:stripeEmail],
    :source  => 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 new_charge_path
end

new.html.erb

<center>
    <%= form_tag charges_path do %>

      <article>
        <% if flash[:error].present? %>
          <div id="error_explanation">
            <p><%= flash[:error] %></p>
          </div>
        <% end %>
        <label class="amount">
          <span>Amount: $<%= @price %></span>
        </label>
      </article>

        <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
          data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
          data-description="Buy usability testing credits"
          data-amount="<%= @price*100 %>"
          data-locale="auto"></script>
    <% end %>

</center>
bkunzi01

您可以通过添加隐藏的表单字段通过params哈希传递@price,也可以在控制器的新操作中对其进行计算,然后将其存储在会话中。然后从会话中访问该值。例如:

def new
  @price = 30 * number_of_testers
  session[:price] = @price
end

def create
  @amount = session[:price] 
  ...rest of your code here...
  session.delete(:price)
end 

如果您使用隐藏表单域路由而不是使用会话,则只需在控制器中将隐藏域属性列入白名单,该属性将作为参数散列的一部分与其他表单域值一起传递。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

确认如何在计划中使用Stripe.net客户

来自分类Dev

如何在haml中使用动态链接

来自分类Dev

我如何使用Stripe延迟向客户收取费用,直到发货完毕?

来自分类Dev

如何使用PHP动态创建价格范围

来自分类Dev

如何在IOS中使用STRIPE API创建STRIPE客户?

来自分类Dev

如何在ngClass中使用动态值

来自分类Dev

如何在delphi中使用动态数组

来自分类Dev

如何在Angular Translate Rails中使用动态变量?

来自分类Dev

在Rails中使用辅助方法更改InnerHTML

来自分类Dev

使用setInterval时如何动态更改间隔

来自分类Dev

如何在Rails中使用“动态CSS”

来自分类Dev

在合并中使用Future接收取消事件

来自分类Dev

如何在uipath中使用动态调用vba在Excel中更改行高

来自分类Dev

如何使用与增加价格相同的价格降低价格?

来自分类Dev

使用Stripe的Subscription Firebase Extension向客户收取费用时的运行功能

来自分类Dev

如何在IOS中使用STRIPE API创建STRIPE客户?

来自分类Dev

如何在动态生成的列表中使用按钮更改文本?

来自分类Dev

如何在Swift中使用动态大小更改iOS应用程序的字体?

来自分类Dev

在Rails中使用Stripe处理回访用户

来自分类Dev

如何在SQL中使用动态IF条件

来自分类Dev

如何在delphi中使用动态数组

来自分类Dev

如何在Angular Translate Rails中使用动态变量?

来自分类Dev

如何在Rails中使用“动态CSS”

来自分类Dev

如何在React中使用Stripe JS触发函数?

来自分类Dev

如何在使用自定义选项选择价格添加到magento的购物车中之前更改价格?

来自分类Dev

在Rails中使用动态参数进行查找

来自分类Dev

Rails中的动态产品价格

来自分类Dev

选择下拉“产品”后如何动态更改下拉选项“价格”

来自分类Dev

使用 Stripe 和 Node / Express 向现有客户收取无卡费用

Related 相关文章

  1. 1

    确认如何在计划中使用Stripe.net客户

  2. 2

    如何在haml中使用动态链接

  3. 3

    我如何使用Stripe延迟向客户收取费用,直到发货完毕?

  4. 4

    如何使用PHP动态创建价格范围

  5. 5

    如何在IOS中使用STRIPE API创建STRIPE客户?

  6. 6

    如何在ngClass中使用动态值

  7. 7

    如何在delphi中使用动态数组

  8. 8

    如何在Angular Translate Rails中使用动态变量?

  9. 9

    在Rails中使用辅助方法更改InnerHTML

  10. 10

    使用setInterval时如何动态更改间隔

  11. 11

    如何在Rails中使用“动态CSS”

  12. 12

    在合并中使用Future接收取消事件

  13. 13

    如何在uipath中使用动态调用vba在Excel中更改行高

  14. 14

    如何使用与增加价格相同的价格降低价格?

  15. 15

    使用Stripe的Subscription Firebase Extension向客户收取费用时的运行功能

  16. 16

    如何在IOS中使用STRIPE API创建STRIPE客户?

  17. 17

    如何在动态生成的列表中使用按钮更改文本?

  18. 18

    如何在Swift中使用动态大小更改iOS应用程序的字体?

  19. 19

    在Rails中使用Stripe处理回访用户

  20. 20

    如何在SQL中使用动态IF条件

  21. 21

    如何在delphi中使用动态数组

  22. 22

    如何在Angular Translate Rails中使用动态变量?

  23. 23

    如何在Rails中使用“动态CSS”

  24. 24

    如何在React中使用Stripe JS触发函数?

  25. 25

    如何在使用自定义选项选择价格添加到magento的购物车中之前更改价格?

  26. 26

    在Rails中使用动态参数进行查找

  27. 27

    Rails中的动态产品价格

  28. 28

    选择下拉“产品”后如何动态更改下拉选项“价格”

  29. 29

    使用 Stripe 和 Node / Express 向现有客户收取无卡费用

热门标签

归档