2016-07-29 38 views
0

所以我有一個Rails應用程序,我在銷售訂閱來訪問內容。對於新澤西州的用戶,我必須向他們收取7%的銷售稅。其他地方都是0.因此,當他們在Devise註冊一個帳戶時,我會記錄他們的狀態。安全地將訂閱的tax_percent提交給Rails中的Stripe API

然後在我的SubscriptionsController.rb,我檢查,看看他們住在新澤西州:

data = if current_user.home_state == "NJ" 
    subscription_params.merge(tax_percent: 7) 
    else 
    subscription_params 
    end 
    @subscription = ::Subscription.new(data) 

當訂閱被創建,訂閱表得到正確更新。我還假設,當用戶進行購買時,這個tax_percent也會觸及Stripe的API,但事實並非如此。

所以我嘗試添加這訂購創建形式:

<%= f.hidden_field :tax_percent %> 

,它並擊中條紋的API,但命中爲徵稅百分比:「」,這是空的。

所以我總是可以這樣進行邏輯檢查:

<% if current_user.home_state == "NJ" %> 
    <%= hidden_field :tax_percent, :value => '7' %> 
<% end %> 

但後來我的價值暴露給客戶端,可控制的。

什麼是最好的'軌'方式提交這個值到Stripe的API?

+0

好吧,所以你還是堅持住了。你能顯示你擁有的Stripe API調用代碼嗎?您不需要在表單中填寫字段,只需通過相應的方法將值傳遞給Stripe API即可。沒有什麼與表格有關,我昨天解釋了它。你從表單發送的數據是多餘的,因爲你正在捕獲用戶的選擇。您所做的決定基於您在表格中的價值。所以它是預定義的。 –

+0

下面是它添加隱藏字段顯示的內容:由Koudoku :: SubscriptionsController處理#以HTML格式創建# 參數:{「utf8」=>「✓」,「authenticity_token」=>「token_here」,「subscription」=> {「 「=」「,」card_type「=>」未定義「},」owner_id「=>」 80「} – JohnOHFS

+0

沒有必要。 :)顯示您必須創建訂閱的條紋代碼。 –

回答

0

根據您提供的代碼示例來判斷髮生的事情有點困難,但最終您希望在創建訂閱時設置單個用戶的稅率[1]。

如果您要進行一次性付款,則還需要將該信息存儲在客戶記錄的其他位置。我可能會建議您使用客戶記錄的metadata-參數[2]。您可以通過創建更新客戶[3] API請求來進行設置。然後,當你收取費用時[4],你需要將它乘以你存儲的任何稅收係數。

另一種(可能更好的)方法是爲一次性購買創建待定發票項目[5](不含稅)。然後創建一個發票[6],tax_percent-參數被填充。最後,付清發票[7]。這將使跟蹤項目的購物記錄保持單獨的稅率。

希望有幫助!