Ruby on rails 4 条带Api不创建令牌Rails 4
我正在使用StripeAPI,并且不断遇到错误“必须提供源代码或客户”。我认为问题在于没有创建令牌,因此没有传递给控制器,因为它没有显示在参数中。 代码如下: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) {
<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)
结束
结束
找到了答案。我没有正确设置可发布密钥 如果您没有创建令牌,请仔细检查您的可发布密钥设置是否正确?哦,太好了,您已经获得了它!问题写得不错。:]