2016-01-23 20 views
0

我一直在試圖將Koudoku寶石集成到我們的應用程序之一,我們將訂閱。我已經開始與寶石提供的建築師,並相應地定製的意見。問題是,我一直得到這個錯誤(客戶端,JavaScript) -Rails4 Koudoku寶石獲取錯誤:未捕獲錯誤:您正在使用帶有Stripe.js的密鑰,而不是可發佈的密鑰

「未捕獲的錯誤:您正在使用帶有Stripe.js的密鑰,而不是可發佈的密鑰。」 雖然我已經把它放在例子中,

Stripe.setPublishableKey("#{Koudoku.stripe_publishable_key}"); 

我遵循了在該示例中給出的相同過程,上面是我通過JavaScript獲得的錯誤。以下是我在form-post後得到的錯誤;

The provided key 'pk_test_************************' does not have the required permissions for this endpoint on account 'acct_****************'. Having more permission would allow this request to continue.

任何人都可以請指導我通過這個錯誤,請。

這裏是整個HTML從_card.html.slim

- content_for :koudoku do 
 

 
    script type="text/javascript" src="https://js.stripe.com/v2/" 
 
= form_for @subscription, url: url, html: {id: 'payment-form', class: 'form-horizontal'} do |f| 
 
    .form-group 
 
    label Card Number 
 
    .input-icon-wrapper 
 
     input type="text" class="form-control card-number" autocomplete="off" size="20" 
 
    .form-group 
 
    label Expiration (MM-YYYY) 
 
    .input-icon-wrapper 
 
     .col-sm-3 
 
     input type="text" class="form-control card-expiry-month" size="2" 
 
     .col-sm-1 
 
     span 
 
      | - 
 
     .col-sm-3 
 
     input type="text" class="form-control card-expiry-year" size="4" 
 
    .form-group 
 
    label CVC 
 
    .input-icon-wrapper 
 
     input type="text" class="form-control card-cvc" autocomplete="off" size="4" 
 

 
    .alert.alert-error.payment-errors 
 
    = f.hidden_field :plan_id 
 

 
    .control-group 
 
    .controls 
 
     - if Koudoku.free_trial? 
 
     button type="submit" class="btn btn-primary submit-button" 
 
      | Save Billing Information 
 
     - else 
 
     button type="submit" class="btn btn-primary submit-button" 
 
      | Upgrade Your Account 
 
     = link_to "Cancel", owner_subscriptions_path(@owner), class: 'btn' 
 
javascript: 
 
    // All this code taken from Stripe's own examples at: 
 
    // https://stripe.com/docs/tutorials/forms . 
 
    function stripeResponseHandler(status, response) { 
 
    console.log(">>>> Inside stripeResponseHandler | Status : ", status, " | Response : ", response); 
 
    if (response.error) { 
 
     // show the errors on the form 
 
     $(".payment-errors").text(response.error.message).show(); 
 
     $(".submit-button").removeAttr("disabled"); 
 
    } else { 
 
     var form$ = $("#payment-form"); 
 
     // token contains id, last4, and card type 
 
     // insert the token into the form so it gets submitted to the server 
 
     form$.append("<input type='hidden' name='subscription[credit_card_token]' value='" + response['id'] + "'/>"); 
 
     form$.append("<input type='hidden' name='subscription[last_four]' value='" + response['last4'] + "'/>"); 
 
     form$.append("<input type='hidden' name='subscription[card_type]' value='" + response['card_type'] + "'/>"); 
 
     // and submit 
 
     form$.get(0).submit(); 
 
    } 
 
    } 
 
    $(document).ready(function() { 
 
    Stripe.setPublishableKey("#{Koudoku.stripe_publishable_key}"); 
 
    // By default, don't show errors. 
 
    $(".payment-errors").hide(); 
 
    $("#payment-form").submit(function(event) { 
 
     // disable the submit button to prevent repeated clicks 
 
     $('.submit-button').attr("disabled", "disabled"); 
 
     console.log(">>>> card-number : ", $('.card-number').val(), " | card-cvc : ", $('.card-cvc').val(), " | card-expiry-month : ", $('.card-expiry-month').val(), " | card-expiry-year : ", $('.card-expiry-year').val()); 
 
     Stripe.createToken({ 
 
     number: $('.card-number').val(), 
 
     cvc: $('.card-cvc').val(), 
 
     exp_month: $('.card-expiry-month').val(), 
 
     exp_year: $('.card-expiry-year').val() 
 
     }, stripeResponseHandler); 
 

 
     // prevent the form from submitting with the default action 
 
     return false; 
 
    }); 
 
    });

在此先感謝。 Nishant

回答

1

你的錯誤涉及到你的javascript說你正在使用一個密鑰,而你的ruby說你正在使用一個可發佈的密鑰,所以我假設你有他們倒退到哪裏你設置#{Koudoku.stripe_publishable_key}"#{Koudoku.stripe_publishable_key}"應該是pk_test_...