Ruby on Rails
Funkcja płatności w szynach
Szukaj…
Wprowadzenie
Dokument ten udaje, że przedstawia pełny przykład tego, jak zaimplementować różne metody płatności za pomocą Ruby on Rails.
W tym przykładzie omówimy dwie bardzo znane platformy płatności Stripe i Braintree.
Uwagi
Jak zintegrować z paskiem
Dodaj klejnot w Gemfile
do naszego Gemfile
gem 'stripe'
Dodaj plik initializers/stripe.rb
. Ten plik zawiera niezbędne klucze do połączenia z kontem 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]
Jak stworzyć nowego klienta w Stripe
Stripe::Customer.create({email: email, source: payment_token})
Ten kod tworzy nowego klienta w Stripe z podanym adresem e-mail i źródłem.
payment_token
to token podany po stronie klienta, który zawiera metodę płatności, taką jak karta kredytowa lub konto bankowe. Więcej informacji: Stripe.js po stronie klienta
Jak odzyskać plan z Stripe
Stripe::Plan.retrieve(stripe_plan_id)
Ten kod pobiera plan z Stripe według jego identyfikatora.
Jak utworzyć subskrypcję
Kiedy mamy klienta i plan, możemy utworzyć nową subskrypcję w Stripe.
Stripe::Subscription.create(customer: customer.id, plan: plan.id)
Stworzy nową subskrypcję i obciąży naszego Użytkownika. Ważne jest, aby wiedzieć, co naprawdę dzieje się w Stripe, gdy subskrybujemy użytkownika w planie, więcej informacji znajdziesz tutaj: Cykl życia subskrypcji Stripe .
Jak obciążyć użytkownika jedną płatnością
Czasami chcemy obciążać naszych użytkowników tylko raz, aby to zrobić, zrobimy to następnym razem.
Stripe::Charge.create(amount: amount, customer: customer, currency: currency)
W takim przypadku obciążamy naszego użytkownika jednorazowo za określoną kwotę.
Powszechne błędy:
Kwota musi być wysłana w postaci liczb całkowitych, co oznacza, że 2000 będzie równe 20 jednostkom waluty. Sprawdź ten przykład
Nie można obciążać użytkownika w dwóch walutach. Jeśli użytkownik był obciążany w EUR w dowolnym momencie w przeszłości, nie można obciążać go w USD.
Nie można obciążać użytkownika bez źródła (metoda płatności).