Ruby on Rails
Característica de pago en rieles.
Buscar..
Introducción
Este documento pretende presentarle, con un ejemplo completo, cómo puede implementar diferentes métodos de pago con Ruby on Rails.
En el ejemplo, cubriremos Stripe y Braintree dos plataformas de pago muy conocidas.
Observaciones
Cómo integrar con Stripe
Agregue la gema de la raya a nuestro Gemfile
gem 'stripe'
Agregue el archivo initializers/stripe.rb
. Este archivo contiene las claves necesarias para conectarse con su cuenta de banda.
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]
Cómo crear un nuevo cliente para Stripe
Stripe::Customer.create({email: email, source: payment_token})
Este código crea un nuevo cliente en Stripe con una dirección de correo electrónico y una fuente dadas.
payment_token
es el token dado por el lado del cliente que contiene un método de pago como una tarjeta de crédito o una cuenta bancaria. Más información: Stripe.js del lado del cliente
Cómo recuperar un plan de Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Este código recupera un plan de Stripe por su id.
Cómo crear una suscripción
Cuando tenemos un cliente y un plan, podemos crear una nueva suscripción en Stripe.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Creará una nueva suscripción y cobrará a nuestro Usuario. Es importante saber qué sucede realmente en Stripe cuando suscribimos un usuario a un plan, encontrará más información aquí: Ciclo de vida de la suscripción a Stripe .
Cómo cobrar a un usuario con un solo pago
A veces queremos cobrarles a nuestros usuarios solo una vez, por eso haremos lo siguiente.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
En ese caso, estamos cobrando a nuestro usuario una vez por una cantidad determinada.
Errores comunes:
La cantidad debe enviarse en forma de entero, lo que significa que 2000 serán 20 unidades de moneda. Mira este ejemplo
No se puede cobrar a un usuario en dos monedas. Si el usuario fue cargado en EUR en algún momento en el pasado, no puede cobrar al usuario en USD.
No puede cobrar al usuario sin fuente (método de pago).