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