2015-12-11 2 views
0

Я работаю с полосой api, и я продолжаю работать с ошибкой «Должен предоставить источник или клиент». Я считаю, что проблема заключается в том, что токен не создается и поэтому не передается контроллеру, потому что он не отображается в параметрах. Вот код:Stripe Api не создает токен Rails 4

<script type="text/javascript"> 

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

     if (response.error) { 
      $form.find('.payment-errors').text(response.error.message); 
      $form.find('#paySubmit').prop('disabled', false); 
     } else { 
      var token = response.id; 

      $form.append($('<input type="hidden" name="stripeToken" />').val(token)); 

      $form.get(0).submit(); 
     }; 
    }; 

    jQuery(function($) { 
     $('#payment-form').submit(function(event) { 

      var $form = $(this); 

      $form.find('#paySubmit').prop('disabled', true); 

      Stripe.card.createToken($form, stripeResponseHandler); 

      return false; 
     }); 
    }); 

    </script> 


<div class="checkout"> 
    <h1>Order Barbell Balm</h1> 

    <form action="/charges" method=POST id="payment-form"> 
     <span class="payment-errors"></span> 
     <ul> 
      <li class="form"> 
       <label> 
        Quantity 
        <input type="text" size="3" name="amount" /> 
       </label> 
      </li> 

      <li class="form"> 
       <label> 
        Card Number 
        <input type="text" size="20" data-stripe="number" /> 
       </label> 
      </li> 

      <li class="form"> 
       <label> 
        CVC 
        <input type="text" size="4" data-stripe="cvc" /> 
       </label> 
      </li> 

      <li class="form"> 
       <label> 
        Expiration (MM/YYYY) 
        <input type="text" size="2" data-stripe="exp-month" /> 
        <input type="text" size="4" date-stripe="exp-year" /> 
       </label> 
      </li> 
      <li class="form"> 
       <input type="submit" class="button" id="paySubmit" /> 
      </li> 
     </ul> 
    </form> 
</div> 

Вот контроллер:

class ChargesController < ApplicationController 

def new 
end 

def create 
    amount = order_params[:amount] * 10 * 100 

    token = order_params[:stripeToken] 

    charge = Stripe::Charge.create(
     :amount => amount, 
     :currency => 'usd', 
     :source => token, 
     :description => 'Barbell Balm' 
    ) 

    rescue Stripe::CardError => e 
end 

protected 

    def order_params 
     params.permit(:stripeToken, :amount) 
    end 
end 

ответ

0

Фигурные его. Я не правильно установил свой опубликованный ключ!

0

Если вы не создаете токены, проверьте, правильно ли установлен ваш печатный ключ?

+0

О, отлично, у вас это уже есть! Хорошая работа с вопросом написана. :] – brookr

Смежные вопросы