【问题标题】:Stripe and tax_percent in my Rails app我的 Rails 应用程序中的 Stripe 和 tax_percent
【发布时间】:2016-07-27 13:51:05
【问题描述】:

所以我有我的 rails 应用程序销售订阅以访问内容。我暂时在结帐表单中插入一个隐藏字段以将 tax_percent 传递给 Stripe 的 API,但它在 Stripe 仪表板中一直显示为 null。该税仅适用于新泽西州,如果买家也在新泽西州,则税率为 7%。我正在通过 javascript 调用 (Calculating Sales Tax for a US State in Javascript) 计算销售税,然后将值推送到 subscription#create 操作。除非它不起作用。

这是表格中的行的样子:

<input type="hidden" id="tax_percent" name="tax_percent">
<%= f.hidden_field :plan_id %>

是的,我需要在服务器端构建一个 Ruby 方法来计算它,但是现在,这很好。

以下是日志中显示的内容:

Processing by Koudoku::SubscriptionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"TokenValueHere", "tax_percent"=>"7", "subscription"=>{"plan_id"=>"5", "credit_card_token"=>"OtherTokenValue", "last_four"=>"undefined", "card_type"=>"undefined"}, "owner_id"=>"72"}

所以您看到 tax_percent 似乎在订阅对象之外,但 plan_id 不在,但它们在结帐表单中彼此相邻。

如何让这个 tax_percent 正确使用 Stripe API??

【问题讨论】:

    标签: javascript ruby-on-rails stripe-payments


    【解决方案1】:

    您问,为什么您的f.hidden_field 在订阅对象内,而您的手册&lt;input&gt; 不在?这是因为您的手动输入没有使用 hidden_field 自动应用的表单字段的命名约定。

    正如docs for #hidden_field 所示,您的隐藏字段plan_id 实际上具有name 属性subscription[plan_id],而不是plan_id。另一个隐藏字段必须使用相同的 subscription[…] 约定,才能将其值自动放入 params["subscription"] 的哈希中。

    您可以使用独立的表单助手hidden_field 自动使您的tax_percent 隐藏字段遵循此命名约定:

    <%= hidden_field :subscription, :tax_percent %>
    <%= f.hidden_field :plan_id %>
    

    【讨论】:

    • 我可以使用我的 javascript 计算器输出,即 document.getElementById('tax_percent').value = tax_percent;将税收百分比值注入 ruby​​ hidden_​​field: ??
    • 进行此更改时出现错误:未定义方法 `tax_percent' for Subcription
    • @JohnOHFS 啊,我没有注意到该隐藏字段的默认 value@subscription.tax_percent。如果您不想为您的Subscription 模型定义tax_percent 方法,您可以通过编写&lt;%= hidden_field :subscription, :tax_percent, value: '0.07' %&gt; 为该字段赋予不同的值,例如0.07
    • @JohnOHFS 是的,使用 JavaScript 设置隐藏字段的 value 应该像任何其他 &lt;input&gt; 一样工作。当浏览器将表单提交到&lt;form&gt;action 属性的URL 时,浏览器将提交隐藏字段的最后设置值以及其他表单值。
    • 谢谢,@Rory-Okane
    猜你喜欢
    • 2016-12-04
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2012-08-15
    相关资源
    最近更新 更多