Ruby on Rails
Funzione di pagamento in binari
Ricerca…
introduzione
Questo documento pretende di presentarti, con un esempio completo, come puoi implementare diversi metodi di pagamento con Ruby on Rails.
Nell'esempio, riguarderemo Stripe e Braintree due piattaforme di pagamento molto conosciute.
Osservazioni
Come integrarsi con Stripe
Aggiungi la gemma Stripe al nostro Gemfile
gem 'stripe'
Aggiungi i file initializers/stripe.rb
. Questo file contiene le chiavi necessarie per la connessione con il tuo account 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]
Come creare un nuovo cliente a Stripe
Stripe::Customer.create({email: email, source: payment_token})
Questo codice crea un nuovo cliente su Stripe con un determinato indirizzo email e origine.
payment_token
è il token dato dal lato client che contiene un metodo di pagamento come una carta di credito o un conto bancario. Ulteriori informazioni: Stripe.js lato client
Come recuperare un piano da Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Questo codice recupera un piano da Stripe tramite il suo id.
Come creare un abbonamento
Quando abbiamo un cliente e un piano possiamo creare un nuovo abbonamento su Stripe.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Creerà un nuovo abbonamento e addebiterà il nostro utente. È importante sapere che cosa realmente accade su Stripe quando iscriviamo un utente a un piano, troverai maggiori informazioni qui: Ciclo di vita dell'iscrizione a strisce .
Come caricare un utente con un singolo pagamento
A volte vogliamo addebitare ai nostri utenti una sola volta, per fare ciò faremo il prossimo.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
In tal caso, addebitiamo il nostro utente una volta per un determinato importo.
Errori comuni:
L'importo deve essere inviato in forma intera, ciò significa che il 2000 sarà di 20 unità di valuta. Controlla questo esempio
Non è possibile caricare un utente in due valute. Se l'utente è stato addebitato in EUR in qualsiasi momento in passato, non è possibile addebitare l'importo in USD.
Non è possibile caricare l'utente senza fonte (metodo di pagamento).