From 623dfd05fc91bfb0794905efeb4614716740ffcb Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Sat, 3 Feb 2024 12:43:21 -0600 Subject: [PATCH] catch card errors on supporter signup --- app/supporter.rb | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/supporter.rb b/app/supporter.rb index 11af2e64..fda5b7f5 100644 --- a/app/supporter.rb +++ b/app/supporter.rb @@ -47,12 +47,17 @@ post '/supporter/update' do site.stripe_subscription_id = subscription.id site.save_changes validate: false else - customer = Stripe::Customer.create( - source: params[:stripe_token], - description: "#{site.username} - #{site.id}", - email: site.email, - plan: plan_type - ) + begin + customer = Stripe::Customer.create( + source: params[:stripe_token], + description: "#{site.username} - #{site.id}", + email: site.email, + plan: plan_type + ) + rescue Stripe::CardError => e + flash[:error] = "Error: #{Rack::Utils.escape_html e.message}" + redirect '/supporter' + end site.stripe_customer_id = customer.id site.stripe_subscription_id = customer.subscriptions.first.id