Class: Datatrans::Web::Transaction::AuthorizeResponse

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/datatrans/web/transaction/authorize.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Common

#sign

Constructor Details

#initialize(datatrans, params) ⇒ AuthorizeResponse

Returns a new instance of AuthorizeResponse.



5
6
7
8
# File 'lib/datatrans/web/transaction/authorize.rb', line 5

def initialize(datatrans, params)
  @datatrans = datatrans
  @params = params
end

Instance Attribute Details

#datatransObject

Returns the value of attribute datatrans.



3
4
5
# File 'lib/datatrans/web/transaction/authorize.rb', line 3

def datatrans
  @datatrans
end

#paramsObject

Returns the value of attribute params.



3
4
5
# File 'lib/datatrans/web/transaction/authorize.rb', line 3

def params
  @params
end

Instance Method Details

#authorization_codeObject



41
42
43
# File 'lib/datatrans/web/transaction/authorize.rb', line 41

def authorization_code
  params[:authorizationCode] rescue nil
end

#creditcard_aliasObject



61
62
63
# File 'lib/datatrans/web/transaction/authorize.rb', line 61

def creditcard_alias
  params[:aliasCC] rescue nil
end

#error_codeObject



65
66
67
# File 'lib/datatrans/web/transaction/authorize.rb', line 65

def error_code
  params[:errorCode] rescue nil
end

#error_detailObject



73
74
75
# File 'lib/datatrans/web/transaction/authorize.rb', line 73

def error_detail
  params[:errorDetail] rescue nil
end

#error_messageObject



69
70
71
# File 'lib/datatrans/web/transaction/authorize.rb', line 69

def error_message
  params[:errorMessage] rescue nil
end

#exp_monthObject



57
58
59
# File 'lib/datatrans/web/transaction/authorize.rb', line 57

def exp_month
  params[:expm] rescue nil
end

#exp_yearObject



53
54
55
# File 'lib/datatrans/web/transaction/authorize.rb', line 53

def exp_year
  params[:expy] rescue nil
end

#masked_ccObject



49
50
51
# File 'lib/datatrans/web/transaction/authorize.rb', line 49

def masked_cc
  params[:maskedCC] rescue nil
end

#payment_methodObject



45
46
47
# File 'lib/datatrans/web/transaction/authorize.rb', line 45

def payment_method
  params[:pmethod] rescue nil
end

#reference_numberObject



37
38
39
# File 'lib/datatrans/web/transaction/authorize.rb', line 37

def reference_number
  params[:refno] rescue nil
end

#response_codeObject



25
26
27
# File 'lib/datatrans/web/transaction/authorize.rb', line 25

def response_code
  params[:responseCode] rescue nil
end

#response_messageObject



29
30
31
# File 'lib/datatrans/web/transaction/authorize.rb', line 29

def response_message
  params[:responseMessage] rescue nil
end

#statusObject



21
22
23
# File 'lib/datatrans/web/transaction/authorize.rb', line 21

def status
  params[:status] rescue nil
end

#successful?Boolean

Returns:

  • (Boolean)

Raises:



10
11
12
13
# File 'lib/datatrans/web/transaction/authorize.rb', line 10

def successful?
  raise Datatrans::InvalidSignatureError unless valid_signature?
  response_code == '01' && status == 'success' && !errors_occurred?
end

#transaction_idObject



33
34
35
# File 'lib/datatrans/web/transaction/authorize.rb', line 33

def transaction_id
  params[:uppTransactionId] rescue nil
end

#valid_signature?Boolean

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/datatrans/web/transaction/authorize.rb', line 15

def valid_signature?
  # TODO: does not make sense... true if errors?
  return true if errors_occurred? # no sign2 sent on error
  sign(self.datatrans.merchant_id, params[:amount], params[:currency], params[:uppTransactionId]) == params[:sign2]
end