2016-07-29 9 views
0

のRailsにストライプAPIへの加入者の税率を提出します。ニュージャージー州のユーザーには、7%の消費税を課す必要があります。他のすべては0です。だから彼らがDeviseにアカウントを登録するとき、私は彼らの状態を記録します。はしっかりだから私は、私がコンテンツにアクセスするためのサブスクリプションを販売していますレールアプリを持っている

はその後、私のSubscriptionsController.rbに、私は彼らがNJに住んでいるかどうかを確認します。

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を打つが、税率としてヒットん:「」、NULLです。

だから私はいつもこのようなロジックチェックを実行することができます

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

しかし、その後、私は操作することができ、クライアントに価値を暴露しています。

ストライプのAPIには、この値を送信するための最良の「レール」の方法は何ですか?

+0

あなたはまだそこに詰まっています。あなたが持っているStripe APIの呼び出しコードを表示できますか?あなたはフォームでファイルを提出する必要はありません。ストライプAPIに値を渡す必要があります。フォームに関連するものは何もなく、私はそれを最後に説明しました。あなたがフォームを冗長から送信しているデータは、ユーザーの選択をキャプチャしているためです。テーブルの価値に基づいて決定します。したがって、それはあらかじめ定義されています。 –

+0

隠しフィールドが追加されているところは次のとおりです。処理:Kodoku :: SubscriptionsController#HTMLとして作成 {"utf8" => "✓"、 "authenticity_token" => "token_here"、 "subscription" => == "undefined"}、 "owner_id" => "tax_percent" => ""、 "plan_id" => "5"、 "credit_card_token" => "cctoken"、 "last_four" 80 "} – JohnOHFS

+0

その必要はありません。 :)サブスクリプションを作成する必要があるStripeコードを表示します。 –

答えて

0

それはあなたが提供したコード・サンプルに基づいて、何が起こっているのか教えて少し難しいですが、最終的に、あなたは[1]サブスクリプションを作成するときに、個々のユーザーへの課税率を設定します。

あなたは一回限りの支払いを行うことになるだろう場合は、カスタマー・レコードでどこかにその情報を格納する必要があります。お客様のレコードのmetadata -parameter [2]を使用することをお勧めします。あなたはUpdate Customer [3] APIリクエストを作成することによってそれを設定することができます。そして、あなたが請求しているときには、あなたが保存した税金係数を乗算したいと思うでしょう。

別の(おそらくより良い)のアプローチは、(税が含まれずに)1回限りの購入のため[5]保留請求書の項目を作成することです。次に、tax_percentパラメータを入力して請求書[6]を作成します。最後に、請求書[7]を支払う。これにより、税目別にラインアイテムで行われた購買の追跡可能な記録が作成されます。

希望に役立ちます!

関連する問題