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

Dokumentacja.

Naszywka

Braintree

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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow