Ruby on Rails
Betalningsfunktion i räls
Sök…
Introduktion
Detta dokument låtsas presentera dig, med ett komplett exempel, hur du kan implementera olika betalningsmetoder med Ruby on Rails.
I exemplet kommer vi att täcka Stripe och Braintree två mycket välkända betalningsplattformar.
Anmärkningar
Hur man integrerar med Stripe
Lägg till Stripe-pärla i vår Gemfile
gem 'stripe'
Lägg till initializers/stripe.rb
fil. Denna fil innehåller de nödvändiga nycklarna för att ansluta till ditt stripkonto.
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]
Hur man skapar en ny kund till Stripe
Stripe::Customer.create({email: email, source: payment_token})
Denna kod skapar en ny kund på Stripe med angiven e-postadress och källa.
payment_token
är det symbol som ges från klientsidan som innehåller en betalningsmetod som ett kreditkort eller bankkonto. Mer info: Stripe.js klientsida
Hur man hämtar en plan från Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Den här koden hämtar en plan från Stripe med sin ID.
Hur man skapar ett prenumeration
När vi har en kund och en plan kan vi skapa ett nytt abonnemang på Stripe.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Det skapar en ny prenumeration och debiterar vår användare. Det är viktigt att veta vad som verkligen händer på Stripe när vi prenumererar en användare på en plan. Du hittar mer info här: Stripe Abonnement livscykel .
Hur man debiterar en användare med en enda betalning
Ibland vill vi debitera våra användare bara en gång, för att göra det gör vi nästa gång.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
I så fall debiterar vi vår användare en gång för ett visst belopp.
Vanliga fel:
Beloppet måste skickas i heltal, det vill säga att 2000 kommer att vara 20 valutaenheter. Kontrollera detta exempel
Du kan inte debitera en användare i två valutor. Om användaren debiteras i EUR när som helst tidigare kan du inte debitera användaren i USD.
Du kan inte debitera användaren utan källa (betalningsmetod).