Полоса выбрасывает неверную целочисленную ошибку

Я не могу списать сумму в размере 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 для более подробной информации, проверьте ссылку

https://stripe.com/docs/api

Вы можете использовать следующий метод, так как он поможет вам использовать десятичное значение в качестве суммы и отображать то же самое в счете и во время оплаты.

сумма: 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

Другие вопросы по тегам