2016-08-08 9 views
1

私はストライプAPIが動作していると思いました。しかし私がHerokuにそれを配備したとき、私は私のページをリフレッシュしなければならなかった。そうでなければ、私の請求書を訪ねたときにコンソールでjavascriptを得るだろう。私はこのエラー。消える同じページを更新し、私は私の支払いを継続することができたときにストライプが今Rails 4 Stripe APIのみが更新しています

が定義されていません。エラーが

にReferenceErrorました。私はJSに精通していないので、私が疑う問題かもしれません。私は他のストライプライブラリを追加しようとしましたが、役に立たない。フォームのための私のコードは以下の通りです:

<h4>Begin your $5.00 a month subscription</h4> 
<form action="https://stackoverflow.com/users/charge" method="POST" id="payment-form"> 
    <span class="payment-errors"></span> 
    <div class="row"> 
    <div class="col-md-6"> 
     <label>Card Number</label> 
     <input class="form-control" type="text" name="Card Number" size="20" data-stripe="number" placeholder="4242424242424242"/> 
    </div> 
    </div> 
    <br /> 
    <div class="row"> 
    <div class="col-xs-2"> 
     <label>CVC</label> 
     <input type="text" data-stripe="cvc" class="form-control" name="CVC" placeholder="123"> 
    </div> 
    </div> 
    <br /> 
    <div class="row"> 
    <div class="col-xs-2"> 
     <label>Expiration</label> 
    </div> 
    </div> 
    <div class="row"> 
    <div class="col-xs-4"> 
     <label>MM</label> 
     <input type="text" data-stripe="exp-month" class="form-control" name="MM" placeholder="01"> 
    </div> 
    <div class="col-xs-4"> 
     <label>YYYY</label> 
     <input type="text" data-stripe="exp-year" class="form-control" name="YYYY" placeholder="2020"> 
    </div> 
    </div> 

    <div class="row"> 
    <div class="col-xs-4"> 
     <br/><button class="btn btn-primary" type="submit">Create Subscription</button> 
    </div> 
    <div class="col-xs-4"> 
     <br/> 
     <%= link_to image_tag("big.png"), "https://stripe.com/" %> 
    </div> 
    <div class="col-xs-4"> 
     <br/> 
     <ul> 
     <li>Reasons To Subscribe:</li> 
     <li>More tutorials</li> 
     <li>Personal Contact with A.J.</li> 
     <li>Request Your own tutorials!</li> 
     <li>Open Source Help</li> 
     </ul> 
    </div> 
    </div> 

    <%= token_tag nil %> 
</form> 

<script src="https://checkout.stripe.com/checkout.js"></script> 
<script type="text/javascript" src="https://js.stripe.com/v2/"></script> 

<script type="text/javascript"> 
    Stripe.setPublishableKey("<%= ENV['STRIPE_PUBLIC_KEY'] %>"); 

    function stripeResponseHandler(status, response) { 
    // Grab the form: 
    var $form = $('#payment-form'); 

    if (response.error) { // Problem! 

    // Show the errors on the form: 
    $form.find('.payment-errors').text(response.error.message); 
    $form.find('.submit').prop('disabled', false); // Re-enable submission 

    } else { // Token was created! 
    // Get the token ID: 
    var token = response.id; 

    // Insert the token ID into the form so it gets submitted to the server: 
    $form.append($('<input type="hidden" name="stripeToken">').val(token)); 

    // Submit the form: 
    $form.get(0).submit(); 
    } 
}; 

$(function() { 
    var $form = $('#payment-form'); 
    $form.submit(function(event) { 
     // Disable the submit button to prevent repeated clicks: 
     $form.find('.submit').prop('disabled', true); 

     // Request a token from Stripe: 
     Stripe.card.createToken($form, stripeResponseHandler); 

     // Prevent the form from being submitted: 
     return false; 
    }); 
}); 
</script> 

答えて

0

これはあなたのapplication.html.hamlまたはapplication.html.erbに起因する Turbolink 変更]データturbolinksトラック '=> falseをinfollowingラインかもしれviews/layoutsフォルダのファイル。

%meta{:content => "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no", :name => "viewport"}/ 
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => 'reload' 
= javascript_include_tag 'application', 'data-turbolinks-track' => 'reload' 
= csrf_meta_tags 

ので、あなたのコードは次のようになります。

%meta{:content => "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no", :name => "viewport"}/ 
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => false 
= javascript_include_tag 'application', 'data-turbolinks-track' => false 
= csrf_meta_tags 
+0

ませんでした助けてくれるようです... – applejuiceteaching

0

私は、私のチェックアウトページの前にこの権利を持っていた:<a href='/my/checkout'>Purchase Subscription</a>

を私はタグにdata-no-turbolink='true'を追加する必要がありました:

<a href='/my/checkout' data-no-turbolink='true'>Purchase Subscription</a> 
関連する問題