Я следую этому учебнику за то, что настроил кнопку оформления заказа
Я изменил учебник для своих нужд, и когда я проверяю свои параметры, stripeToken пуст
{"utf8" => "✓", "authenticity_token" => "sometokenvalue", "stripeToken" => "", "amount" => "40000", "item_id" => "3"}
Я подозреваю, что получаю эту ошибку
Неверный исходный объект: должен быть словарем или непустой строкой.См. API документы на https://stripe.com/docs'
в связи с этим.
мой код следующим образом:
<p id="notice"><%= notice %></p>
<div class="container">
<div class="row">
<div class="col-md-12"><p>
<strong>Name:</strong>
<%= @item.name %>
</p>
<p>
<strong>Price:</strong>
<%= @item.price %>
</p>
<script src="https://checkout.stripe.com/checkout.js"></script>
<%= form_tag item_charges_path(@item, amount: @item.price), id: 'paying-form' do %>
<% if flash[:error].present? %>
<div id="error_explanation">
<p><%= flash[:error] %></p>
</div>
<% end %>
<article>
</article>
<article>
<%= hidden_field_tag :stripeToken %>
</article>
<button id='donateButton' class='btn btn-primary'>Pay</button>
<% end %>
<%= link_to 'Edit', edit_item_path(@item) %> |
<%= link_to 'Back', items_path %>
<script>
var handler = StripeCheckout.configure({
key: '<%= Rails.configuration.stripe[:publishable_key] %>',
locale: 'auto',
token: function(token) {
$('input#stripeToken').val(token.id);
$('form').submit();
}
});
</script>
<script>
document.getElementById('donateButton').addEventListener('click', function(e) {
//e.preventDefault();
$('#error_explanation').html('');
var amount = "#{@item.price}";
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 {
amount = amount * 100; // Needs to be an integer!
handler.open({
amount: Math.round(amount)
})
e.preventDefault();
}
});
$(window).on('popstate', function() {
handler.close();
});
</script>
</div>
</div>
</div>
Примечание: Я положилjs коды на той же странице для целей простоты.
Может кто-нибудь сказать мне, что не так, что моя форма не производит stripeToken?или, может быть, мне не хватает некоторых баллов?
Примечание: пожалуйста, если требуется дополнительная информация, дайте мне знать, чтобы я опубликовал Спасибо