diff --git a/README.md b/README.md index c40c259..8185a89 100644 --- a/README.md +++ b/README.md @@ -36,5 +36,4 @@ Visit `/admin/customize/site_texts` and search for 'discourse_donations'. You'll ## TODO * Handle custom fields -* Handle fails from stripe * Acceptance test in RSpec not qunit. diff --git a/app/controllers/discourse_donations/charges_controller.rb b/app/controllers/discourse_donations/charges_controller.rb index 714c325..818a522 100644 --- a/app/controllers/discourse_donations/charges_controller.rb +++ b/app/controllers/discourse_donations/charges_controller.rb @@ -28,7 +28,19 @@ module DiscourseDonations end payment = DiscourseDonations::Stripe.new(secret_key, stripe_options) - charge = payment.charge(email, params) + + begin + charge = payment.charge(email, params) + rescue ::Stripe::CardError => e + err = e.json_body[:error] + + output['messages'] << "There was an error (#{err[:type]})." + #output['messages'] << "Error code: #{err[:code]}" if err[:code] + #output['messages'] << "Decline code: #{err[:decline_code]}" if err[:decline_code] + output['messages'] << "Message: #{err[:message]}" if err[:message] + + render(:json => output) and return + end if charge['paid'] == true output['messages'] << I18n.t('donations.payment.success') diff --git a/plugin.rb b/plugin.rb index e32812c..311227c 100644 --- a/plugin.rb +++ b/plugin.rb @@ -1,6 +1,6 @@ # name: discourse-donations # about: Integrating Discourse with Stripe for donations -# version: 1.10.1 +# version: 1.10.2 # url: https://github.com/choiceaustralia/discourse-donations # authors: Rimian Perkins