class Spree::Api::V2::Storefront::IntentsController

Public Instance Methods

handle_response() click to toggle source
# File lib/controllers/spree/api/v2/storefront/intents_controller.rb, line 8
def handle_response
  if params['response']['error']
    invalidate_payment
    render_error_payload(params['response']['error']['message'])
  else
    render_serialized_payload { { message: I18n.t('spree.payment_successfully_authorized') } }
  end
end

Private Instance Methods

invalidate_payment() click to toggle source
# File lib/controllers/spree/api/v2/storefront/intents_controller.rb, line 19
def invalidate_payment
  payment = spree_current_order.payments.find_by!(response_code: params['response']['error']['payment_intent']['id'])
  payment.update(state: 'failed', intent_client_key: nil)
end