2016-04-25 6 views
2

私はこの1頭の周りに私の頭を得ることができません。ストライプレール:無効な整数:1.06

私のフォームは、£1.06106のパラメータを渡します。カードを充電

enter image description here

防ぐために、どのように
amount = params[:amount].to_f 
begin 
    charge = Stripe::Charge.create(
    :amount => amount/100, 
    :currency => "gbp", 
    :source => token, 
    :description => "Example charge" 
) 
rescue Stripe::CardError => e 
    # The card has been declined 
end 

無効な整数:1.06

整数から来ているのでしょうか?私はそれをfloatに変換しました。

+0

私はちょうど何が起こったのか詳しくは言えません....しかしどこかのように、あなたのコードは 'amount'が' Integer'であると期待しています(そして ' 「フロート」)。私の最初の推測では、 'Stripe :: Charge'モデルでは、値が整数であることをチェックするレール検証がありますか?あるいは、データベース表の列型が 'integer'ですか? –

+0

'.to_f'を削除した場合、ストライプは£1.06ではなく£106を請求します。それが通過するパラメータが '106'であるので、私のjsはOKです。私は少しこのサーバーを再起動します。 – Sylar

+0

params [:amount]の値を投稿してください。 – Sambit

答えて

5

Stripe API Referenceによると、量パラメータは整数でなければならず、セントと認識されます。したがって、額としてparams[:amount]を直接渡す必要があります。

+0

完全にドキュメントを忘れてしまいましたか?私はこれを古いPolymerプロジェクトから使用していました。 – Sylar

+0

@Sylarあなたは大歓迎です。 –