Я использую Devise 3 и Stripe 1.8.4 в приложении Rails 4. Я был бы признателен, если бы кто-нибудь мог просмотреть мой javascript. У меня есть ошибка, которую я не смог найти. Его ели меня в течение последних нескольких дней. Я уверен, что это ошибка javascript, так как ошибка из полосы - «Пустая строка, заданная для карты». Я предполагаю, что данные карты не отправляются, потому что что-то связано с javascript. Спасибо заранее за вашу помощь.Устранение неполадок javascript для Stripe
Моя форма выглядит следующим образом:
<%= simple_form_for(resource, :as => resource_name, :url =>
registration_path(resource_name), :id => 'payment-form', method: :post) do |f| %>
<%= f.error_notification %>
<!-- Create Account -->
<div class="inputs">
<%= f.input :first_name, :autofocus => true, :placeholder => "First Name", label:false %>
<%= f.input :last_name, :placeholder => "Last Name", label:false, :required => true %>
<%= f.input :email, :placeholder => "Email Address", label:false, :required => true %>
<%= f.input :password, :placeholder => "Password", label:false, :required => true %>
<%= f.input :password_confirmation, :placeholder => "Password Confirmation", label:false, :required => true %>
<!-- Terms -->
<%= f.input :terms, as: :boolean, label: 'I agree to the terms of service.' %>
<%= f.input :autorenew, as: :boolean, label: 'Automatically renew my account each year.' %>
</div>
<!-- Payment Information -->
<span class="payment-errors"></span>
<div class="row">
<div class="small-8 columns">
<input type="text" size="20" data-stripe="number" placeholder="Credit Card Number"/>
</div>
</div>
<div class="row">
<div class="small-3 columns">
<input type="text" size="4" data-stripe="cvc" placeholder="CVC Code"/>
</div>
</div>
<div class="row">
<div class="small-4 columns">
<div class="row">
<div class="small-5 columns">
<input type="text" size="2" data-stripe="exp-month" placeholder ="MM"/>
</div>
<div class="small-6 columns">
<input type="text" size="4" data-stripe="exp-year" placeholder="YYYY"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="small-4 columns">
<input type="text" size="10" data-stripe="coupon" placeholder="Coupon Code"/>
</div>
</div>
<%= f.input :stripe_token, as: :hidden %>
<div class="actions">
<%= f.submit "Subscribe", :class => "button radius" %>
</div>
<% end %>
браузер:
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<script type="text/javascript">
$(function($){
Stripe.setPublishableKey('<%= Rails.configuration.stripe[:publishable_key] %>');
$('#payment-form').submit(function(event) {
var form = $('#payment-form');
form.find('button').prop('disabled', true);
Stripe.createToken(form, stripeResponseHandler);
return false;
});
function stripeResponseHandler = function(status, response) {
var form = $('#payment-form');
if (response.error) {
// Show the errors on the form
form.find('.payment-errors').text(response.error.message);
form.find('button').prop('disabled', false);
} else {
// token contains id, last4, and card type
var token = response.id;
// Insert the token into the form so it gets submitted to the server
form.append($('<input type="hidden" name="stripeToken" />').val(token));
// and submit
form.get(0).submit();
}
};
});
Благодарим вас за отзыв!
Пробовал изменить функцию на var, но он не работал. – ERG