authorizenet_blaq 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/lib/app/helpers/authorize_net_helper.rb +24 -0
  3. data/lib/authorize_net/addresses/address.rb +29 -0
  4. data/lib/authorize_net/addresses/shipping_address.rb +26 -0
  5. data/lib/authorize_net/aim/response.rb +131 -0
  6. data/lib/authorize_net/aim/transaction.rb +190 -0
  7. data/lib/authorize_net/api/api_transaction.rb +123 -0
  8. data/lib/authorize_net/api/constants.yml +1 -0
  9. data/lib/authorize_net/api/schema.rb +4985 -0
  10. data/lib/authorize_net/api/transaction.rb +258 -0
  11. data/lib/authorize_net/arb/fields.rb +24 -0
  12. data/lib/authorize_net/arb/paging.rb +33 -0
  13. data/lib/authorize_net/arb/response.rb +34 -0
  14. data/lib/authorize_net/arb/sorting.rb +43 -0
  15. data/lib/authorize_net/arb/subscription.rb +72 -0
  16. data/lib/authorize_net/arb/subscription_detail.rb +14 -0
  17. data/lib/authorize_net/arb/subscription_list_response.rb +43 -0
  18. data/lib/authorize_net/arb/transaction.rb +177 -0
  19. data/lib/authorize_net/authorize_net.rb +154 -0
  20. data/lib/authorize_net/cim/customer_profile.rb +19 -0
  21. data/lib/authorize_net/cim/payment_profile.rb +37 -0
  22. data/lib/authorize_net/cim/response.rb +116 -0
  23. data/lib/authorize_net/cim/transaction.rb +727 -0
  24. data/lib/authorize_net/customer.rb +27 -0
  25. data/lib/authorize_net/email_receipt.rb +24 -0
  26. data/lib/authorize_net/fields.rb +779 -0
  27. data/lib/authorize_net/key_value_response.rb +117 -0
  28. data/lib/authorize_net/key_value_transaction.rb +291 -0
  29. data/lib/authorize_net/line_item.rb +25 -0
  30. data/lib/authorize_net/order.rb +42 -0
  31. data/lib/authorize_net/payment_methods/credit_card.rb +62 -0
  32. data/lib/authorize_net/payment_methods/echeck.rb +72 -0
  33. data/lib/authorize_net/reporting/batch.rb +19 -0
  34. data/lib/authorize_net/reporting/batch_statistics.rb +19 -0
  35. data/lib/authorize_net/reporting/fds_filter.rb +11 -0
  36. data/lib/authorize_net/reporting/response.rb +163 -0
  37. data/lib/authorize_net/reporting/returned_item.rb +46 -0
  38. data/lib/authorize_net/reporting/transaction.rb +133 -0
  39. data/lib/authorize_net/reporting/transaction_details.rb +25 -0
  40. data/lib/authorize_net/response.rb +27 -0
  41. data/lib/authorize_net/sim/hosted_payment_form.rb +38 -0
  42. data/lib/authorize_net/sim/hosted_receipt_page.rb +37 -0
  43. data/lib/authorize_net/sim/response.rb +142 -0
  44. data/lib/authorize_net/sim/transaction.rb +138 -0
  45. data/lib/authorize_net/transaction.rb +66 -0
  46. data/lib/authorize_net/xml_response.rb +172 -0
  47. data/lib/authorize_net/xml_transaction.rb +298 -0
  48. data/lib/authorize_net.rb +107 -0
  49. data/lib/authorizenet_blaq.rb +4 -0
  50. data/lib/generators/authorize_net/direct_post/direct_post_generator.rb +53 -0
  51. data/lib/generators/authorize_net/direct_post/templates/README-AuthorizeNet +49 -0
  52. data/lib/generators/authorize_net/direct_post/templates/config.yml.erb +8 -0
  53. data/lib/generators/authorize_net/direct_post/templates/config.yml.rails3.erb +8 -0
  54. data/lib/generators/authorize_net/direct_post/templates/controller.rb.erb +31 -0
  55. data/lib/generators/authorize_net/direct_post/templates/initializer.rb +4 -0
  56. data/lib/generators/authorize_net/direct_post/templates/layout.erb +18 -0
  57. data/lib/generators/authorize_net/direct_post/templates/payment.erb +10 -0
  58. data/lib/generators/authorize_net/direct_post/templates/payment.rails3.erb +10 -0
  59. data/lib/generators/authorize_net/direct_post/templates/receipt.erb +1 -0
  60. data/lib/generators/authorize_net/direct_post/templates/relay_response.erb +1 -0
  61. data/lib/generators/authorize_net/sim/sim_generator.rb +47 -0
  62. data/lib/generators/authorize_net/sim/templates/README-AuthorizeNet +52 -0
  63. data/lib/generators/authorize_net/sim/templates/config.yml.erb +8 -0
  64. data/lib/generators/authorize_net/sim/templates/config.yml.rails3.erb +8 -0
  65. data/lib/generators/authorize_net/sim/templates/controller.rb.erb +21 -0
  66. data/lib/generators/authorize_net/sim/templates/initializer.rb +4 -0
  67. data/lib/generators/authorize_net/sim/templates/layout.erb +18 -0
  68. data/lib/generators/authorize_net/sim/templates/payment.erb +6 -0
  69. data/lib/generators/authorize_net/sim/templates/payment.rails3.erb +6 -0
  70. data/lib/generators/authorize_net/sim/templates/thank_you.erb +1 -0
  71. data/lib/generators/generator_extensions.rb +75 -0
  72. metadata +196 -0
@@ -0,0 +1,258 @@
1
+ module AuthorizeNet::API
2
+ class Transaction < ApiTransaction
3
+ attr_accessor :access_token
4
+ attr_accessor :options_OAuth
5
+
6
+ def initialize(api_login_id = nil, api_transaction_key = nil, options = {})
7
+ super
8
+ end
9
+
10
+ # This request enables you to create a transaction, and optional customer profile.
11
+ # NOTE: Tokenized transactions (e.g. Apple Pay), or PayPal should not be used to
12
+ # create payment profiles.
13
+ #
14
+ # See spec/api_spec.rb for usage examples
15
+ def create_transaction(request)
16
+ make_request(request,CreateTransactionResponse,Type::API_CREATE_TRANSACTION)
17
+ end
18
+
19
+ # This request enables you to create a recurring billing subscription
20
+ #
21
+ # See spec/api_spec.rb for usage examples
22
+ def create_subscription(request)
23
+ make_request(request,ARBCreateSubscriptionResponse,Type::API_CREATE_SUBSCRIPTION)
24
+ end
25
+
26
+ # This request enables you to update a recurring billing subscription
27
+ #
28
+ # See spec/api_spec.rb for usage examples
29
+ def update_subscription(request)
30
+ make_request(request,ARBUpdateSubscriptionResponse,Type::API_UPDATE_SUBSCRIPTION)
31
+ end
32
+
33
+ # This request enables you to cancel a recurring billing subscription
34
+ #
35
+ # See spec/api_spec.rb for usage examples
36
+ def cancel_subscription(request)
37
+ make_request(request,ARBCancelSubscriptionResponse,Type::API_CANCEL_SUBSCRIPTION)
38
+ end
39
+
40
+ # This request enables you to get a recurring billing subscription status
41
+ #
42
+ # See spec/api_spec.rb for usage examples
43
+ def get_subscription_status(request)
44
+ make_request(request,ARBGetSubscriptionStatusResponse,Type::API_GET_SUBSCRIPTION_STATUS)
45
+ end
46
+
47
+ # This request enables you to get a list of all recurring billing subscriptions
48
+ #
49
+ # See spec/api_spec.rb for usage examples
50
+ def get_subscription_list(request)
51
+ make_request(request,ARBGetSubscriptionListResponse,Type::API_GET_SUBSCRIPTION_LIST)
52
+ end
53
+
54
+ # This request enables you to create a customer profile
55
+ #
56
+ # See spec/api_spec.rb for usage examples
57
+ def create_customer_profile(request)
58
+ make_request(request,CreateCustomerProfileResponse,Type::API_CREATE_CUSTOMER_PROFILE)
59
+ end
60
+
61
+ # This request enables you to retrieve a customer profile
62
+ #
63
+ # See spec/api_spec.rb for usage examples
64
+ def get_customer_profile(request)
65
+ make_request(request,GetCustomerProfileResponse,Type::API_GET_CUSTOMER_PROFILE)
66
+ end
67
+
68
+
69
+ # This request enables you to retrieve all customer profile ids
70
+ #
71
+ # See spec/api_spec.rb for usage examples
72
+ def get_customer_profile_ids(request)
73
+ make_request(request,GetCustomerProfileIdsResponse,Type::API_GET_CUSTOMER_PROFILE_IDS)
74
+ end
75
+
76
+ # This request enables you to update a customer profile
77
+ #
78
+ # See spec/api_spec.rb for usage examples
79
+ def update_customer_profile(request)
80
+ make_request(request,UpdateCustomerProfileResponse,Type::API_UPDATE_CUSTOMER_PROFILE)
81
+ end
82
+
83
+ # This request enables you to delete a customer profile
84
+ #
85
+ # See spec/api_spec.rb for usage examples
86
+ def delete_customer_profile(request)
87
+ make_request(request,DeleteCustomerProfileResponse,Type::API_DELETE_CUSTOMER_PROFILE)
88
+ end
89
+
90
+ # This request enables you to create a customer payment profile
91
+ #
92
+ # See spec/api_spec.rb for usage examples
93
+ def create_customer_payment_profile(request)
94
+ make_request(request,CreateCustomerPaymentProfileResponse,Type::API_CREATE_CUSTOMER_PAYMENT_PROFILE)
95
+ end
96
+
97
+ # This request enables you to retrieve a customer payment profile
98
+ #
99
+ # See spec/api_spec.rb for usage examples
100
+ def get_customer_payment_profile(request)
101
+ make_request(request,GetCustomerPaymentProfileResponse,Type::API_GET_CUSTOMER_PAYMENT_PROFILE)
102
+ end
103
+
104
+ # This request enables you to update a customer payment profile
105
+ #
106
+ # See spec/api_spec.rb for usage examples
107
+ def update_customer_payment_profile(request)
108
+ make_request(request,UpdateCustomerPaymentProfileResponse,Type::API_UPDATE_CUSTOMER_PAYMENT_PROFILE)
109
+ end
110
+
111
+ # This request enables you to delete a customer payment profile
112
+ #
113
+ # See spec/api_spec.rb for usage examples
114
+ def delete_customer_payment_profile(request)
115
+ make_request(request,DeleteCustomerPaymentProfileResponse,Type::API_DELETE_CUSTOMER_PAYMENT_PROFILE)
116
+ end
117
+
118
+ # This request enables you to create a customer shipping profile
119
+ #
120
+ # See spec/api_spec.rb for usage examples
121
+ def create_customer_shipping_profile(request)
122
+ make_request(request,CreateCustomerShippingAddressResponse,Type::API_CREATE_CUSTOMER_SHIPPING_PROFILE)
123
+ end
124
+
125
+ # This request enables you to retrieve a customer shipping profile
126
+ #
127
+ # See spec/api_spec.rb for usage examples
128
+ def get_customer_shipping_profile(request)
129
+ make_request(request,GetCustomerShippingAddressResponse,Type::API_GET_CUSTOMER_SHIPPING_PROFILE)
130
+ end
131
+
132
+ # This request enables you to update a customer shipping profile
133
+ #
134
+ # See spec/api_spec.rb for usage examples
135
+ def update_customer_shipping_profile(request)
136
+ make_request(request,UpdateCustomerShippingAddressResponse,Type::API_UPDATE_CUSTOMER_SHIPPING_PROFILE)
137
+ end
138
+
139
+ # This request enables you to delete a customer shipping profile
140
+ #
141
+ # See spec/api_spec.rb for usage examples
142
+ def delete_customer_shipping_profile(request)
143
+ make_request(request,DeleteCustomerShippingAddressResponse,Type::API_DELETE_CUSTOMER_SHIPPING_PROFILE)
144
+ end
145
+
146
+
147
+ # This request enables you to create a customer profile, payment profile,
148
+ # and shipping profile from an existing successful transaction.
149
+ # NOTE: Tokenized transactions (e.g. Apple Pay), or PayPal should not be used to
150
+ # create payment profiles.
151
+ #
152
+ # See spec/api_spec.rb for usage examples
153
+ def create_customer_profile_from_transaction(request)
154
+ make_request(request,CreateProfileResponse,Type::API_CREATE_CUSTOMER_PROFILE_FROM_TRANSACTION)
155
+ end
156
+
157
+ # This request enables you to decrypt a payment data blob.
158
+ #
159
+ # See spec/api_spec.rb for usage examples
160
+ def decrypt_payment_data(request)
161
+ make_request(request,DecryptPaymentDataResponse,Type::API_DECRYPT_PAYMENT_DATA)
162
+ end
163
+
164
+ # This request enables confirm authentication values
165
+ #
166
+ # See spec/api_spec.rb for usage examples
167
+ def authenticate_test_request(request)
168
+ make_request(request,AuthenticateTestResponse,Type::API_AUTHENTICATE_TEST_REQUEST)
169
+ end
170
+
171
+ # This request enables you to get batch statistics details
172
+ #
173
+ # See spec/api_spec.rb for usage examples
174
+ def get_batch_statistics(request)
175
+ make_request(request,GetBatchStatisticsResponse,Type::API_GET_BATCH_STATISTICS)
176
+ end
177
+
178
+ # This request enables you to get batch transaction details
179
+ #
180
+ # See spec/api_spec.rb for usage examples
181
+ def get_transaction_details(request)
182
+ make_request(request,GetTransactionDetailsResponse,Type::API_GET_TRANSACTION_DETAILS)
183
+ end
184
+
185
+ # This request enables you to get batch settled transaction details
186
+ #
187
+ # See spec/api_spec.rb for usage examples
188
+ def get_settled_batch_list(request)
189
+ make_request(request,GetSettledBatchListResponse,Type::API_GET_SETTLED_BATCH_LIST)
190
+ end
191
+
192
+ # This request enables you to get batch unsettled transaction details
193
+ #
194
+ # See spec/api_spec.rb for usage examples
195
+ def get_unsettled_transaction_list(request)
196
+ make_request(request,GetUnsettledTransactionListResponse,Type::API_GET_UNSETTLED_TRANSACTION_LIST)
197
+ end
198
+
199
+ # This request enables confirm authentication values
200
+ #
201
+ # See spec/api_spec.rb for usage examples
202
+ def get_hosted_profile_page(request)
203
+ make_request(request,GetHostedProfilePageResponse,Type::API_GET_HOSTED_PROFILE_PAGE)
204
+ end
205
+
206
+ # This request enables you to update split tender group
207
+ #
208
+ # See spec/api_spec.rb for usage examples
209
+ def update_split_tender_group(request)
210
+ make_request(request,UpdateSplitTenderGroupResponse,Type::API_UPDATE_SPLIT_TENDER_GROUP)
211
+ end
212
+
213
+ # This request enables you to get customer payment profile list
214
+ #
215
+ # See spec/api_spec.rb for usage examples
216
+ def get_customer_payment_profile_list(request)
217
+ make_request(request,GetCustomerPaymentProfileListResponse,Type::API_GET_CUSTOMER_PAYMENT_PROFILE_LIST)
218
+ end
219
+
220
+ # This request enables you to get ARB Subscription
221
+ #
222
+ # See spec/api_spec.rb for usage examples
223
+ def arb_get_subscription_request(request)
224
+ make_request(request,ARBGetSubscriptionResponse,Type::API_ARB_GET_SUBSCRIPTION_REQUEST)
225
+ end
226
+
227
+ # This request enables you to get transaction list
228
+ #
229
+ # See spec/api_spec.rb for usage examples
230
+ def get_transaction_list(request)
231
+ make_request(request,GetTransactionListResponse,Type::API_GET_TRANSACTION_LIST)
232
+ end
233
+
234
+ # This request enables you to validate customer payment profile
235
+ #
236
+ # See spec/api_spec.rb for usage examples
237
+ def validate_customer_payment_profile(request)
238
+ make_request(request,ValidateCustomerPaymentProfileResponse,Type::API_VALIDATE_CUSTOMER_PAYMENT_PROFILE)
239
+ end
240
+
241
+ def get_merchant_details(request)
242
+ make_request(request,GetMerchantDetailsResponse,Type::API_GET_MERCHANT_DETAILS)
243
+ end
244
+
245
+ def get_hosted_payment_page(request)
246
+ make_request(request,GetHostedPaymentPageResponse,Type::API_GET_HOSTED_PAYMENT_PAGE)
247
+ end
248
+
249
+ def update_held_transaction(request)
250
+ make_request(request,UpdateHeldTransactionResponse,Type::API_UDPATE_HELD_TRANSACTION)
251
+ end
252
+
253
+ def get_transaction_list_for_customer(request)
254
+ make_request(request,GetTransactionListResponse,Type::API_GET_TRANSACTION_LIST_FOR_CUSTOMER)
255
+ end
256
+
257
+ end
258
+ end
@@ -0,0 +1,24 @@
1
+ module AuthorizeNet::ARB
2
+ module Fields
3
+ EntityDescription = Struct.new(:node_structure, :entity_class, :arg_mapping)
4
+
5
+ SUBSCRIPTION_DETAIL_ENTITY_DESCRIPTION = EntityDescription.new(
6
+ [
7
+ {:id => :id},
8
+ {:name => :name},
9
+ {:status => :status},
10
+ {:createTimeStampUTC => :create_time_stamp_utc},
11
+ {:firstName => :first_name},
12
+ {:lastName => :last_name},
13
+ {:totalOccurrences => :total_occurrences},
14
+ {:pastOccurrences => :past_occurrences},
15
+ {:paymentMethod => :payment_method},
16
+ {:accountNumber => :account_number},
17
+ {:invoice => :invoice},
18
+ {:amount => :amount},
19
+ {:currencyId => :currency_id}
20
+ ],
21
+ AuthorizeNet::ARB::SubscriptionDetail
22
+ )
23
+ end
24
+ end
@@ -0,0 +1,33 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ class Paging
4
+
5
+ # Models Paging
6
+ include AuthorizeNet::Model
7
+
8
+ attr_accessor :offset,:limit
9
+
10
+ # Initializes Paging object.
11
+ #
12
+ # Typical usage:
13
+ # paging = AuthorizeNet::ARB::Paging.new(1,1000)
14
+ #
15
+ # Valid values for offset: 1 to 100000
16
+ # Valid values for limit: 1 to 1000
17
+ #
18
+ def initialize(offset,limit)
19
+ @offset = offset
20
+ @limit = limit
21
+ end
22
+
23
+ def to_hash
24
+ hash = {
25
+ :offset => @offset,
26
+ :limit => @limit
27
+ }
28
+ hash.delete_if {|k, v| v.nil?}
29
+ end
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,34 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ # The ARB response class.
4
+ class Response < AuthorizeNet::XmlResponse
5
+
6
+ # Constructs a new response object from a +raw_response. You don't typically
7
+ # construct this object yourself, as AuthorizeNet::ARB::Transaction will
8
+ # build one for you when it makes the request to the gateway.
9
+ def initialize(raw_response, transaction)
10
+ super
11
+ unless connection_failure?
12
+ begin
13
+ @subscription_id = node_content_unless_nil(@root.at_css('subscriptionId'))
14
+ @subscription_status = node_content_unless_nil(@root.at_css('Status'))
15
+ rescue
16
+ @raw_response = $!
17
+ end
18
+ end
19
+ end
20
+
21
+ # Returns the subscriptionId from the response if there is one. Otherwise returns nil.
22
+ def subscription_id
23
+ @subscription_id
24
+ end
25
+
26
+ # Returns the status of the Subscription from the response if there is one. Otherwise returns nil. This value
27
+ # is only returned in response to a get_status transaction.
28
+ def subscription_status
29
+ @subscription_status
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,43 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ class Sorting
4
+
5
+ # Models Sorting
6
+ include AuthorizeNet::Model
7
+
8
+ attr_accessor :order_by, :order_descending
9
+
10
+ # Initializes Sorting object.
11
+ #
12
+ # Typical usage:
13
+ # sorting = AuthorizeNet::ARB::Sorting.new('name',true)
14
+ #
15
+ # Valid values for order_by values of the AuthorizeNet::ARB::Sorting:
16
+ # id
17
+ # name
18
+ # status
19
+ # createTimeStampUTC
20
+ # lastName
21
+ # firstName
22
+ # accountNumber
23
+ # amount
24
+ # pastOccurrences
25
+ #
26
+ # Valid values for order_descending: true, false, 1, 0
27
+ #
28
+ def initialize(order_by, order_descending)
29
+ @order_by = order_by
30
+ @order_descending = order_descending
31
+ end
32
+
33
+ def to_hash
34
+ hash = {
35
+ :order_by => @order_by,
36
+ :order_descending => @order_descending
37
+ }
38
+ hash.delete_if {|k, v| v.nil?}
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,72 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ # Models an ARB subscription.
4
+ class Subscription
5
+
6
+ # Use this constant for the value of total_occurrences to get a subscription with no end.
7
+ UNLIMITED_OCCURRENCES = 9999
8
+
9
+ # Constants for the various interval units supported by the ARB API.
10
+ module IntervalUnits
11
+ MONTH = 'months'
12
+ DAY = 'days'
13
+ end
14
+
15
+ # Constants for the various statuses a subscription can have. These are returned by the get_status call.
16
+ module Status
17
+ ACTIVE = 'active'
18
+ EXPIRED = 'expired'
19
+ SUSPENDED = 'suspended'
20
+ CANCELED = 'canceled'
21
+ TERMINATED = 'terminated'
22
+ end
23
+
24
+ include AuthorizeNet::Model
25
+
26
+ attr_accessor :name, :length, :unit, :start_date, :total_occurrences, :trial_occurrences, :amount, :trial_amount, :invoice_number, :description, :subscription_id, :credit_card, :billing_address, :shipping_address, :customer
27
+
28
+ # Override the total_occurrences setter to provide support for :unlimited shortcut.
29
+ def total_occurrences=(new_total_occurrences) #:nodoc:
30
+ if new_total_occurrences == :unlimited
31
+ @total_occurrences = UNLIMITED_OCCURRENCES
32
+ else
33
+ @total_occurrences = new_total_occurrences
34
+ end
35
+ end
36
+
37
+ # Override the unit setter to provide support for :day, :days, :month, :months shortcut. Do not document this method in rdoc.
38
+ def unit=(new_unit) #:nodoc:
39
+ case new_unit
40
+ when :day, :days
41
+ @unit = IntervalUnits::DAY
42
+ when :month, :months
43
+ @unit = IntervalUnits::MONTH
44
+ else
45
+ @unit = new_unit
46
+ end
47
+ end
48
+
49
+ def to_hash
50
+ hash = {
51
+ :subscription_name => @name,
52
+ :subscription_length => @length,
53
+ :subscription_unit => @unit,
54
+ :subscription_start_date => @start_date,
55
+ :subscription_total_occurrences => @total_occurrences,
56
+ :subscription_trial_occurrences => @trial_occurrences,
57
+ :subscription_amount => @amount,
58
+ :subscription_trial_amount => @trial_amount,
59
+ :invoice_num => @invoice_number,
60
+ :description => @description,
61
+ :subscription_id => @subscription_id
62
+ }
63
+ hash.merge!(@credit_card.to_hash) unless @credit_card.nil?
64
+ hash.merge!(@billing_address.to_hash) unless @billing_address.nil?
65
+ hash.merge!(@shipping_address.to_hash) unless @shipping_address.nil?
66
+ hash.merge!(@customer.to_hash) unless @customer.nil?
67
+ hash.delete_if {|k, v| v.nil?}
68
+ end
69
+
70
+ end
71
+
72
+ end
@@ -0,0 +1,14 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ # Models Subscription Detail.
4
+ class SubscriptionDetail
5
+
6
+ include AuthorizeNet::Model
7
+
8
+ attr_accessor :id, :name, :status, :create_time_stamp_utc, :first_name,
9
+ :last_name, :total_occurrences, :past_occurrences,
10
+ :payment_method, :account_number, :invoice, :amount, :currency_id
11
+
12
+ end
13
+
14
+ end
@@ -0,0 +1,43 @@
1
+ module AuthorizeNet::ARB
2
+
3
+ class SubscriptionListResponse < AuthorizeNet::XmlResponse
4
+ # Constructs a new response object from a +raw_response. You don't typically
5
+ # construct this object yourself, as AuthorizeNet::ARB::Transaction will
6
+ # build one for you when it makes the request to the gateway.
7
+ def initialize(raw_response, transaction)
8
+ super
9
+ unless connection_failure?
10
+ begin
11
+ @subscription_details = @root.at_css('subscriptionDetails')
12
+ @subscription_detail = @root.at_css('subscriptionDetail')
13
+ @total_num_in_resultset = node_content_unless_nil(@root.at_css('totalNumInResultSet'))
14
+
15
+ rescue
16
+ @raw_response = $!
17
+ end
18
+ end
19
+ end
20
+
21
+ # Returns total number of subscriptions matching the search criteria
22
+ def total_num_in_resultset
23
+ @total_num_in_resultset
24
+ end
25
+
26
+ # Returns an Array of SubscriptionDetail objects built from the entities returned in the response. Returns nil if no subscriptions were returned.
27
+ def subscription_details
28
+ unless @subscription_details.nil?
29
+ subscription_details = []
30
+ @subscription_details.element_children.each do |child|
31
+ unless child.nil?
32
+ subscription_detail = build_entity(child, Fields::SUBSCRIPTION_DETAIL_ENTITY_DESCRIPTION)
33
+
34
+ subscription_details <<= subscription_detail
35
+ end
36
+ end
37
+ return subscription_details unless subscription_details.length == 0
38
+ end
39
+ end
40
+
41
+ end
42
+
43
+ end