Полоса выбрасывает неверную целочисленную ошибку
Я не могу списать сумму в размере 49,99 долларов США в полоску. Я иду по следующим ссылкам, но ничего тренировки
Ошибка цены проверки полосы - неверное целое число
Stripe Rails: недействительное целое число: 1,06
Я хотел бы взимать сумму как есть. Я не хочу округлять платеж
stripe.charges.create({
// Charge the customer in stripe
// amount: req.query.amount,
amount: 49.99,
currency: 'usd',
customer: req.customer
}).then(function(charge) {
// Use and save the charge info in our db
var successTransaction = {
stripeId: charge.customer,
transactionId: charge.id,
amount: charge.amount,
currency: charge.currency,
message: charge.outcome.seller_message,
paidStatus: charge.paid,
summary: charge
};
4 ответа
Stripe допускает только целочисленное значение в цене, поэтому нужно изменить цену (сумму) на цент на (*100), поэтому теперь ваша сумма кода равна 499, а на полосе sdashboard вы видите 49,99 для более подробной информации, проверьте ссылку
Вы можете использовать следующий метод, так как он поможет вам использовать десятичное значение в качестве суммы и отображать то же самое в счете и во время оплаты.
сумма: Math.round (49,99 * 100)
Следуйте инструкциям для stripe
интеграция с рельсами:
Gemfile
gem 'stripe'
бежать
bundle install
конфиг / инициализатор /stripe.rb
Rails.configuration.stripe = {
:publishable_key => "paste_stripe_key",
:secret_key => "paste_stripe_secret"
}
Логика в модели
def self.process_stripe_payment(params, email)
amt = sprintf('%.2f', params[:total_amount])
plan = "plan_#{amt}"
card_token = Stripe::Token.create( :card => {
:name => params[:card_name],
:number => params[:card_number],
:exp_month => params[:exp_month],
:exp_year => params[:exp_year],
:cvc => params[:card_cvv] })
customer_params = {:card => card_token[:id], :plan => plan, :email => email}
stripe_customer = Stripe::Customer.create(customer_params)
return true
end
создавать планы под Stripe.com -> Subscriptions -> plans
Stripe допускает целочисленное значение в качестве цены, если вы хотите взимать 49,99 доллара, умножьте его на 100.
Наименьшая единица цены, разрешенная полосой, - цент.
599 cents = $5.99