Resources

Download Source Code

Summary

# Terminal
bundle add stripe

# config/initializers/stripe.rb
Stripe.api_key = "YOUR_API_KEY"

# config/routes.rb
  resources :donates, only: [] do
    collection do
      get :show
      get :thankyou
    end
  end

# views/welcome/index.html.erb
<%= link_to "Donate", "https://donate.stripe.com/YOUR_TEST_LINK_HERE", target: :_blank %>

<%= link_to "Donate $5", donates_path(amount: 500) %>
<%= link_to "Donate $50", donates_path(amount: 5000) %>

<%= form_with url: donates_path, "data-turbo": false, method: :get do |f| %>
  <%= f.number_field :amount %>
  <%= f.submit "Donate" %>
<% end %>

# donates_controller.rb
class DonatesController < ApplicationController
  def show
    session = Stripe::Checkout::Session.create(
      billing_address_collection: :auto,
      mode: :payment,
      payment_method_types: ['card'],
      line_items: [
        {
          amount: params[:amount].to_i,
          name: "Donation",
          currency: "usd",
          description: "donation",
          quantity: 1
        }
      ],
      success_url: "http://localhost:3000/donates/thankyou",
      cancel_url: "http://localhost:3000/"
    )
    redirect_to session.url, allow_other_host: true
  end

  def thankyou
  end
end