Поиск…


Вступление

В этом документе вы можете представить вам, с полным примером, как вы можете реализовать различные способы оплаты с Ruby on Rails.

В этом примере мы рассмотрим две хорошо известные платежные платформы Stripe и Braintree.

замечания

Документация.

нашивка

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 единиц валюты. Проверьте этот пример

  • Вы не можете взимать плату с пользователя в двух валютах. Если пользователь в последний момент взимал плату в евро, вы не можете взимать плату с пользователя в долларах США.

  • Вы не можете заряжать пользователя без источника (способ оплаты).



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow