Ruby on Rails
Функция оплаты в рельсах
Поиск…
Вступление
В этом документе вы можете представить вам, с полным примером, как вы можете реализовать различные способы оплаты с Ruby on Rails.
В этом примере мы рассмотрим две хорошо известные платежные платформы Stripe и Braintree.
замечания
Как интегрироваться с полосой
Добавить Stripe gem в наш Gemfile
gem 'stripe'
Добавьте файл initializers/stripe.rb
. Этот файл содержит необходимые ключи для подключения к вашей учетной записи stripe.
require 'require_all'
Rails.configuration.stripe = {
:publishable_key => ENV['STRIPE_PUBLISHABLE_KEY'],
:secret_key => ENV['STRIPE_SECRET_KEY']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]
Как создать нового клиента для Stripe
Stripe::Customer.create({email: email, source: payment_token})
Этот код создает нового клиента на Stripe с заданным адресом электронной почты и источником.
payment_token
- это токен, указанный на стороне клиента, который содержит способ оплаты, например, кредитную карту или банковский счет. Дополнительная информация: Stripe.js на стороне клиента
Как получить план из Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Этот код извлекает план из Stripe по его идентификатору.
Как создать подписку
Когда у нас есть клиент и план, мы можем создать новую подписку на Stripe.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Он создаст новую подписку и будет взимать плату с нашего Пользователя. Важно знать, что на самом деле происходит на Stripe, когда мы подписываемся на план пользователя, вы найдете здесь дополнительную информацию: жизненный цикл Subsipe Subscription .
Как взимать плату с одного платежа
Иногда мы хотим заряжать наших пользователей всего один раз, потому что мы сделаем это дальше.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
В этом случае мы взимаем с нашего пользователя один раз за заданную сумму.
Общие ошибки:
Сумма должна быть отправлена в целочисленной форме, то есть 2000 будет составлять 20 единиц валюты. Проверьте этот пример
Вы не можете взимать плату с пользователя в двух валютах. Если пользователь в последний момент взимал плату в евро, вы не можете взимать плату с пользователя в долларах США.
Вы не можете заряжать пользователя без источника (способ оплаты).