Sha256: fde8b42ca5d192a445bbce8d97547702c0883e2d808430ab90cb511e4a2fa398

Contents?: true

Size: 1.11 KB

Versions: 62

Compression:

Stored size: 1.11 KB

Contents

module Workarea
  class Payment
    module Purchase
      class CreditCard
        include OperationImplementation
        include CreditCardOperation

        delegate :address, to: :tender

        def complete!
          # Some gateways will tokenize in the same request as the auth/capture.
          # If that is the case for the gateway you are implementing, omit the
          # following line, and save the token on the tender after doing the
          # gateway authorization.
          return unless StoreCreditCard.new(tender, options).save!

          transaction.response = handle_active_merchant_errors do
            gateway.purchase(
              transaction.amount.cents,
              tender.to_token_or_active_merchant,
              transaction_options
            )
          end
        end

        def cancel!
          return unless transaction.success?

          transaction.cancellation = handle_active_merchant_errors do
            gateway.void(transaction.response.authorization)
          end
        end

        private

        def transaction_options
          {}
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.4.13 app/models/workarea/payment/purchase/credit_card.rb
workarea-core-3.4.12 app/models/workarea/payment/purchase/credit_card.rb