Ruby on Rails
Betalingsfunctie in rails
Zoeken…
Invoering
In dit document wordt u voorgesteld, met een compleet voorbeeld, hoe u verschillende betaalmethoden met Ruby on Rails kunt implementeren.
In het voorbeeld behandelen we Stripe en Braintree twee zeer bekende betalingsplatforms.
Opmerkingen
Hoe te integreren met Stripe
Voeg Stripe gem toe aan onze Gemfile
gem 'stripe'
Voeg initializers/stripe.rb
bestand toe. Dit bestand bevat de benodigde sleutels om verbinding te maken met uw stripe-account.
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]
Hoe een nieuwe klant bij Stripe te creëren
Stripe::Customer.create({email: email, source: payment_token})
Deze code creëert een nieuwe klant op Stripe met het opgegeven e-mailadres en de bron.
payment_token
is het token gegeven vanaf de client-kant dat een betaalmethode zoals een creditcard of bankrekening bevat. Meer info: Stripe.js client-side
Een plan ophalen uit Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Deze code haalt een plan van Stripe op met zijn ID.
Een abonnement maken
Wanneer we een klant en een abonnement hebben, kunnen we een nieuw abonnement op Stripe maken.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Het zal een nieuw abonnement aanmaken en onze Gebruiker in rekening brengen. Het is belangrijk om te weten wat er echt gebeurt op Stripe wanneer we een gebruiker abonneren op een abonnement. Je vindt hier meer informatie: Stripe Subscription lifecycle .
Hoe een gebruiker met één betaling te belasten
Soms willen we onze gebruikers slechts één keer opladen, want dat doen we de volgende keer.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
In dat geval brengen we onze gebruiker één keer in rekening voor een bepaald bedrag.
Veel voorkomende fouten:
Het bedrag moet in gehele vorm worden verzonden, dat wil zeggen dat 2000 20 valuta-eenheden zal zijn. Bekijk dit voorbeeld
U kunt een gebruiker niet in twee valuta's in rekening brengen. Als de gebruiker op enig moment in het verleden in rekening is gebracht, kunt u de gebruiker niet in USD in rekening brengen.
U kunt geen kosten in rekening brengen zonder bron (betaalmethode).