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

Documentación.

Raya

Braintree

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).



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow