私が理解している限り問題は、ストライプチェックアウトモーダルが呼び出されていないため、ストライプトークンが設定されていないため、エラー。ここでRails Stripe Js可変金額チェックアウト
が自分のセットアップチュートリアルへのリンクです:https://stripe.com/docs/recipes/variable-amount-checkout
だから私は、文字通り/を通じて読みながら自分のコードを貼り付けると、単に最小量をmodifedコピーしてきました。私はAPIキーでエラーが発生しましたが、私はその問題を過ぎました。
ここで私のエラーを見てください: あなたは空の文字列を 'source'に渡しました。リクエストから 'source'パラメータを削除するか、空白でない値を指定する必要があります。
Stripe::Charge.create(
:amount => @amount,
:currency => 'usd',
:source => params[:stripeToken],
パラメータ:
{ "UTF8" => "✓"、 "authenticity_token" => "ロングコード..."、 "量" => "6"、 "stripeToken" => ""}
このエラーの前にはモーダルが表示されません。どういうわけか、チェックアウトのモーダルjsが単に寄付ボタンイベントハンドラによって呼び出されていないと思われます。
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
locale: 'auto',
name: 'Ragnar\'s Redoubt',
description: 'One-time donation',
token: function(token) {
$('input#stripeToken').val(token.id);
$('form').submit();
}
});
$('#donateButton').on('click', function(e) {
e.preventDefault();
$('#error_explanation').html('');
var amount = $('input#amount').val();
amount = amount.replace(/\$/g, '').replace(/\,/g, '')
amount = parseFloat(amount);
if (isNaN(amount)) {
$('#error_explanation').html('<p>Please enter a valid amount in USD ($).</p>');
}
else if (amount < 1.00) {
$('#error_explanation').html('<p>Donation amount must be at least $1.</p>');
}
else {
amount = amount * 100; // Needs to be an integer!
handler.open({
amount: Math.round(amount)
})
}
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
私はjavascriptのnoobのですが、私はどのようにhandle.open(表示されていない)が真上チェックアウトスクリプトを開きます。 varハンドルはそれを私がここで紛失しているものと呼んでいませんか?自分のnoobの質問に答えるのリスクが