Sha256: bd53846d82015cb0dd9b0660d195085ea3682343666b3a6d5060580be1bcba70

Contents?: true

Size: 887 Bytes

Versions: 7

Compression:

Stored size: 887 Bytes

Contents

require 'active_support/core_ext/hash'

module Datatrans::Web
  class Transaction
    include Datatrans::Common

    attr_accessor :request
    attr_reader :response, :params, :datatrans

    def initialize(datatrans, params)
      @datatrans = datatrans
      params = params.to_hash
      params.symbolize_keys!
      params.reverse_merge!(:reqtype => 'NOA', :useAlias => 'yes', :hiddenMode => 'yes')
      @params = params
    end

    def signature
      sign(self.datatrans.merchant_id, params[:amount], params[:currency], params[:refno])
    end

    def authorize
      @response = AuthorizeResponse.new(datatrans, params)
      @response.successful?
    end

    def method_missing(method, *args, &block)
      if response.respond_to? method.to_sym
        response.send(method)
      else
        super
      end
    end
  end
end

require 'datatrans/web/transaction/authorize'

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
datatrans-5.1.0 lib/datatrans/web/transaction.rb
datatrans-5.0.0 lib/datatrans/web/transaction.rb
datatrans-4.0.1 lib/datatrans/web/transaction.rb
datatrans-4.0.0 lib/datatrans/web/transaction.rb
datatrans-3.0.2 lib/datatrans/web/transaction.rb
datatrans-3.0.1 lib/datatrans/web/transaction.rb
datatrans-3.0.0 lib/datatrans/web/transaction.rb