Stripe Единоразовый платеж + регулярный платеж

Я проверил документ Stripe API, но не могу найти решение для модели (product_price + Month_Fee). Я вижу, что Stripe::Charge.create предназначен для единовременной оплаты, а подписка предназначена для регулярных платежей. Ссылка на руководство или пример кода будут очень благодарны. Я пробовал с кодом ниже, но пока безуспешно.

def save_and_pay(params)
  customer = Stripe::Customer.create(
    :email => subscription.user.email,
    :source  => params[:stripeToken]
  )
  subscription.user.update(gateway_customer_id: customer.id, is_active: true)
  charge = Stripe::Charge.create(
    :customer    => customer.id,
    :amount      => (subscription.plan_price * 100).to_i,
    :currency    => 'usd',
    :description => 'subscription Payment'
  )
  self.payment_status = charge.paid
  self.payment_response = charge.status
  self.save    
end

Спасибо

Не уверен, что понял: в чем проблема создать 2 начисления с помощью существующих инструментов - стандартную разовую и подписку?

Konstantin Strukov 22.05.2019 17:20

Прочтите stackoverflow.com/help/минимально-воспроизводимый-пример. Нам нужно увидеть вашу попытку решить ее с помощью минимального кода, необходимого для воспроизведения проблемы. Без этого похоже, что вы просите нас написать код для вас.

the Tin Man 23.05.2019 02:26

Привет Tin Man, спасибо за руководство. Я проверил документ Stripe API и написал свой код, как указано выше, но пока не повезло.

Intelligent Web Solutions 23.05.2019 04:18
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
3
332
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел ответ.

1) Вам нужно создать план в панели инструментов Stripe. (Для этого кода я создал план с month_fee)

2) Вы можете добавить приведенный ниже код в свой файл.

customer = Stripe::Customer.create(
  :email => "user@user.user",
  :source  => params[:stripeToken]
)

invoiceItem = Stripe::InvoiceItem.create({
  :customer    => customer.id,
  :amount      => 100,
  :currency    => 'usd',
  :description => 'subscription Payment'
})

charge = Stripe::Subscription.create(
  :customer => customer,
  :items => [
    {
      :plan => "monthly_fee",
      :quantity => 5
    },
  ]
)

Надеюсь, это поможет другим, кто сталкивается с тем же случаем. Спасибо

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