Rails集成Stripe Tax批量传入订单项报错求助
解决思路
问题出在Ruby的each方法上——each遍历集合后返回的是原集合本身(也就是@cart.cart_line_items这个ActiveRecord集合),而不是你在块里创建的哈希数组。当Stripe API解析这个集合对象时,会识别出它的内部属性(比如v1这类框架相关字段),从而抛出"received unknown parameter: v1"的错误。
替换成map方法就能解决,map会收集块中每个迭代的返回值,生成你需要的哈希数组:
line_items: @cart.cart_line_items.map do |item| { amount: item.subtotal, reference: item.name } end
额外注意点
- 确保
item.subtotal是最小货币单位(比如美元用分、人民币用分),Stripe API要求amount必须以最小单位传入,否则会出现计算错误。 - 块内的哈希最后一个键值对后面不需要加逗号,Ruby会自动处理语法,避免不必要的语法问题。
内容的提问来源于stack exchange,提问作者Tony S.
相关产品推荐
相关产品推荐

