Class: AtPay::Token::Core

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

Direct Known Subclasses

Bulk, Invoice, Targeted

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Core

Returns a new instance of Core.



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

def initialize(*args)
  self.version            = nil
  self.expires_in_seconds = (86400*14)        # two weeks
  self.user_data          = OpenStruct.new
end

Instance Attribute Details

#amountObject

Dollar amount to capture



10
11
12
# File 'lib/atpay/token/core.rb', line 10

def amount
  @amount
end

#email_addressObject

Returns the value of attribute email_address.



12
13
14
# File 'lib/atpay/token/core.rb', line 12

def email_address
  @email_address
end

#expiresObject

Returns the value of attribute expires.



14
15
16
# File 'lib/atpay/token/core.rb', line 14

def expires
  @expires
end

#groupObject

Returns the value of attribute group.



15
16
17
# File 'lib/atpay/token/core.rb', line 15

def group
  @group
end

#sessionObject

AtPay::Session instance



8
9
10
# File 'lib/atpay/token/core.rb', line 8

def session
  @session
end

#urlObject

Returns the value of attribute url.



11
12
13
# File 'lib/atpay/token/core.rb', line 11

def url
  @url
end

#user_dataObject

Returns the value of attribute user_data.



13
14
15
# File 'lib/atpay/token/core.rb', line 13

def user_data
  @user_data
end

#versionObject

nil: Auth + Capture / 1: Validation (deprecated) / 2: Authorization Only



9
10
11
# File 'lib/atpay/token/core.rb', line 9

def version
  @version
end

Instance Method Details

#auth_only!Object



101
102
103
# File 'lib/atpay/token/core.rb', line 101

def auth_only!
  self.version = 2
end

#billing_address=(billing_address) ⇒ Object



80
81
82
# File 'lib/atpay/token/core.rb', line 80

def billing_address=(billing_address)
  self.user_data.billing_address = billing_address
end

#capture!Object



105
106
107
# File 'lib/atpay/token/core.rb', line 105

def capture!
  self.version = 0
end

#custom_user_data=(str) ⇒ Object



84
85
86
# File 'lib/atpay/token/core.rb', line 84

def custom_user_data=(str)
  self.user_data.custom_user_data = str
end

#estimated_fulfillment_days=(days) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/atpay/token/core.rb', line 50

def estimated_fulfillment_days=(days)
  if days.to_i > 0
    self.auth_only!
  else
    self.capture!
  end

  self.user_data.fulfillment = days
end

#expires_in_seconds=(seconds) ⇒ Object



46
47
48
# File 'lib/atpay/token/core.rb', line 46

def expires_in_seconds=(seconds)
  self.expires = Time.now.to_i + seconds.to_i
end

#item_details=(item_details) ⇒ Object



88
89
90
# File 'lib/atpay/token/core.rb', line 88

def item_details=(item_details)
  self.user_data.item_details = item_details
end

#item_quantity=(qty) ⇒ Object



92
93
94
# File 'lib/atpay/token/core.rb', line 92

def item_quantity=(qty)
  self.user_data.quantity = qty
end

#nameObject



37
38
39
# File 'lib/atpay/token/core.rb', line 37

def name
  self.user_data.name
end

#name=(name) ⇒ Object



33
34
35
# File 'lib/atpay/token/core.rb', line 33

def name=(name)
  self.user_data.name = name
end

#register!Object



109
110
111
# File 'lib/atpay/token/core.rb', line 109

def register!
  AtPay::Token::Registration.new(session, to_s)
end

#request_custom_data!(name, options = {}) ⇒ Object



96
97
98
99
# File 'lib/atpay/token/core.rb', line 96

def request_custom_data!(name, options={})
  self.user_data.custom_fields ||= []
  self.user_data.custom_fields << { name: name, required: !!options[:required] }
end

#requires_billing_address=(v) ⇒ Object



76
77
78
# File 'lib/atpay/token/core.rb', line 76

def requires_billing_address=(v)
  v ? add_address_option('billing') : remove_address_option('billing')
end

#requires_billing_address?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/atpay/token/core.rb', line 72

def requires_billing_address?
  address_options.include?('billing')
end

#requires_shipping_address=(v) ⇒ Object



64
65
66
# File 'lib/atpay/token/core.rb', line 64

def requires_shipping_address=(v)
  v ? add_address_option('shipping') : remove_address_option('shipping')
end

#requires_shipping_address?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/atpay/token/core.rb', line 60

def requires_shipping_address?
  address_options.include?('shipping')
end

#shipping_address=(shipping_address) ⇒ Object



68
69
70
# File 'lib/atpay/token/core.rb', line 68

def shipping_address=(shipping_address)
  self.user_data.shipping_address = shipping_address
end

#to_sObject



113
114
115
# File 'lib/atpay/token/core.rb', line 113

def to_s
  AtPay::Token::Encoder.new(session, version, amount, email_address, expires, url, encoded_user_data, group).email
end