0
我正在使用條紋api,並一直運行錯誤「必須提供源代碼或客戶」。我相信問題是令牌沒有被創建,因此不會傳遞給控制器,因爲它不會顯示在參數中。 下面的代碼:條紋Api不創建令牌導軌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
哦,太棒了,你已經知道了!這個問題寫得很好。 :] – brookr