# 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