Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 条带Api不创建令牌Rails 4_Ruby On Rails 4_Stripe Payments - Fatal编程技术网

Ruby on rails 4 条带Api不创建令牌Rails 4

Ruby on rails 4 条带Api不创建令牌Rails 4,ruby-on-rails-4,stripe-payments,Ruby On Rails 4,Stripe Payments,我正在使用StripeAPI,并且不断遇到错误“必须提供源代码或客户”。我认为问题在于没有创建令牌,因此没有传递给控制器,因为它没有显示在参数中。 代码如下: <script type="text/javascript"> function stripeResponseHandler(status, response) { var $form = $('#payment-form'); if (response.error) {

我正在使用StripeAPI,并且不断遇到错误“必须提供源代码或客户”。我认为问题在于没有创建令牌,因此没有传递给控制器,因为它没有显示在参数中。 代码如下:

    <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>

函数stripeResponseHandler(状态、响应){
var$form=$(“#付款单”);
if(response.error){
$form.find('.payment errors').text(response.error.message);
$form.find('paysmit').prop('disabled',false);
}否则{
var token=response.id;
$form.append($('').val(标记));
$form.get(0.submit();
};
};
jQuery(函数($){
$(“#付款单”)。提交(功能(事件){
var$form=$(此);
$form.find(“#paysmit”).prop('disabled',true);
Stripe.card.createToken($form,stripeResponseHandler);
返回false;
});
});
订购杠铃香膏
  • 卡号
  • CVC
  • 有效期(年月日)
这是控制器:

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
class ChargesControlleramount,
:货币=>“美元”,
:source=>token,
:description=>“杠铃香膏”
)
救援条带::CardError=>e
结束
受保护的
def order_参数
参数许可证(:stripeToken,:amount)
结束
结束

找到了答案。我没有正确设置可发布密钥

如果您没有创建令牌,请仔细检查您的可发布密钥设置是否正确?

哦,太好了,您已经获得了它!问题写得不错。:]