所以我的 Rails 应用程序出售订阅来访问内容。我暂时在结帐表单中插入一个隐藏字段,以将tax_percent 传递到 Stripe 的 API,但它在 Stripe 仪表板中始终显示为空。该税仅适用于新泽西州,如果买家也在新泽西州,则直接征收 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?
最佳答案
为什么你的f.hidden_field
在订阅对象内,而您的手册 <input>
你问是不是?这是因为您的手动输入没有使用表单字段的命名约定hidden_field
自动应用。
作为docs for #hidden_field
显示,您的隐藏字段 plan_id
实际上有一个name
subscription[plan_id]
的属性,不是plan_id
。另一个隐藏字段必须使用相同的 subscription[…]
其值自动放入 params["subscription"]
处的哈希值的约定.
您可以自动将您的 tax_percent
隐藏字段通过使用独立表单助手来遵守此命名约定 hidden_field
:
<%= hidden_field :subscription, :tax_percent %>
<%= f.hidden_field :plan_id %>
关于javascript - 我的 Rails 应用程序中的 Stripe 和tax_percent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603665/