From 9b1da14380454fe082c02cafef10bd3a7a92b443 Mon Sep 17 00:00:00 2001 From: Andy Brett Date: Fri, 18 Jun 2021 11:41:52 -0700 Subject: [PATCH] mark payment failed after failed authorization --- app/services/process_payment_intent.rb | 2 ++ spec/controllers/spree/orders_controller_spec.rb | 4 ++-- spec/services/process_payment_intent_spec.rb | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/services/process_payment_intent.rb b/app/services/process_payment_intent.rb index 1dc329d875..ca71d84eae 100644 --- a/app/services/process_payment_intent.rb +++ b/app/services/process_payment_intent.rb @@ -46,6 +46,8 @@ class ProcessPaymentIntent Result.new(ok: false, error: I18n.t("payment_could_not_complete")) end rescue Stripe::StripeError => e + payment.failed_authorization + payment.clear_authorization_url Result.new(ok: false, error: e.message) end diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index c8a9fbb715..879d663342 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -171,8 +171,8 @@ describe Spree::OrdersController, type: :controller do expect(response.status).to eq 200 expect(flash[:error]).to eq("#{I18n.t('payment_could_not_process')}. error message") payment.reload - expect(payment.cvv_response_message).to eq("https://stripe.com/redirect") - expect(payment.state).to eq("requires_authorization") + expect(payment.cvv_response_message).to be nil + expect(payment.state).to eq("failed") end end diff --git a/spec/services/process_payment_intent_spec.rb b/spec/services/process_payment_intent_spec.rb index 482d2b4405..aa14085650 100644 --- a/spec/services/process_payment_intent_spec.rb +++ b/spec/services/process_payment_intent_spec.rb @@ -65,7 +65,7 @@ describe ProcessPaymentIntent do it "does not complete the payment" do service.call! - expect(payment.reload.state).to eq("requires_authorization") + expect(payment.reload.state).to eq("failed") end end end