Class: AtPay::SecurityKey

Inherits:
Object
  • Object
show all
Defined in:
lib/atpay/security_key.rb

Instance Method Summary collapse

Constructor Details

#initialize(session, options) ⇒ SecurityKey

Returns a new instance of SecurityKey.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
14
15
# File 'lib/atpay/security_key.rb', line 7

def initialize(session, options)
  raise ArgumentError.new("User Data can't exceed 2500 characters.") if options[:user_data] and options[:user_data].length > 2500
  raise ArgumentError.new("email") unless options[:email].nil? or options[:email] =~ /.+@.+/
  raise ArgumentError.new("amount") unless options[:amount].is_a? Float
  raise ArgumentError.new("card or email or member or url required") if options[:email].nil? and options[:card].nil? and options[:member].nil? and options[:url].nil?

  @session = session
  @options = options
end

Instance Method Details

#email_tokenObject



17
18
19
20
21
# File 'lib/atpay/security_key.rb', line 17

def email_token
  "@#{version}#{Base64.strict_encode64([nonce, partner_frame, body_frame].join)}@"
ensure
  @nonce = nil
end

#site_token(remote_addr, headers) ⇒ Object



23
24
25
26
27
28
# File 'lib/atpay/security_key.rb', line 23

def site_token(remote_addr, headers)
  raise ArgumentError.new("card or member required for site tokens") if @options[:card].nil? and @options[:member].nil?
  "@#{version}#{Base64.strict_encode64([nonce, partner_frame, site_frame(remote_addr, headers), body_frame].join)}"
ensure
  @nonce = nil
end

#to_sObject



30
31
32
# File 'lib/atpay/security_key.rb', line 30

def to_s
  email_token
end