authorizenet 1.9.4 → 1.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/app/helpers/authorize_net_helper.rb +2 -3
- data/lib/authorize_net.rb +5 -5
- data/lib/authorize_net/addresses/address.rb +15 -19
- data/lib/authorize_net/addresses/shipping_address.rb +12 -16
- data/lib/authorize_net/aim/response.rb +27 -38
- data/lib/authorize_net/aim/transaction.rb +46 -65
- data/lib/authorize_net/api/api_transaction.rb +85 -90
- data/lib/authorize_net/api/constants.yml +1 -1
- data/lib/authorize_net/api/schema.rb +968 -936
- data/lib/authorize_net/api/transaction.rb +100 -102
- data/lib/authorize_net/arb/fields.rb +21 -21
- data/lib/authorize_net/arb/paging.rb +7 -11
- data/lib/authorize_net/arb/response.rb +7 -15
- data/lib/authorize_net/arb/sorting.rb +6 -10
- data/lib/authorize_net/arb/subscription.rb +27 -31
- data/lib/authorize_net/arb/subscription_detail.rb +1 -5
- data/lib/authorize_net/arb/subscription_list_response.rb +13 -20
- data/lib/authorize_net/arb/transaction.rb +50 -56
- data/lib/authorize_net/authorize_net.rb +20 -27
- data/lib/authorize_net/cim/customer_profile.rb +4 -8
- data/lib/authorize_net/cim/payment_profile.rb +10 -12
- data/lib/authorize_net/cim/response.rb +19 -24
- data/lib/authorize_net/cim/transaction.rb +168 -174
- data/lib/authorize_net/customer.rb +11 -14
- data/lib/authorize_net/email_receipt.rb +8 -12
- data/lib/authorize_net/fields.rb +483 -502
- data/lib/authorize_net/key_value_response.rb +54 -62
- data/lib/authorize_net/key_value_transaction.rb +87 -97
- data/lib/authorize_net/line_item.rb +10 -14
- data/lib/authorize_net/order.rb +21 -25
- data/lib/authorize_net/payment_methods/credit_card.rb +6 -7
- data/lib/authorize_net/payment_methods/echeck.rb +29 -31
- data/lib/authorize_net/reporting/batch.rb +4 -7
- data/lib/authorize_net/reporting/batch_statistics.rb +2 -6
- data/lib/authorize_net/reporting/fds_filter.rb +2 -5
- data/lib/authorize_net/reporting/response.rb +54 -60
- data/lib/authorize_net/reporting/returned_item.rb +11 -12
- data/lib/authorize_net/reporting/transaction.rb +27 -29
- data/lib/authorize_net/reporting/transaction_details.rb +3 -6
- data/lib/authorize_net/response.rb +6 -10
- data/lib/authorize_net/sim/hosted_payment_form.rb +16 -20
- data/lib/authorize_net/sim/hosted_receipt_page.rb +18 -23
- data/lib/authorize_net/sim/response.rb +24 -33
- data/lib/authorize_net/sim/transaction.rb +33 -43
- data/lib/authorize_net/transaction.rb +15 -21
- data/lib/authorize_net/xml_response.rb +36 -54
- data/lib/authorize_net/xml_transaction.rb +115 -134
- data/lib/generators/authorize_net/direct_post/direct_post_generator.rb +5 -6
- data/lib/generators/authorize_net/sim/sim_generator.rb +6 -7
- data/lib/generators/generator_extensions.rb +23 -25
- metadata +127 -81
- checksums.yaml +0 -7
@@ -1,25 +1,21 @@
|
|
1
1
|
module AuthorizeNet
|
2
|
-
|
3
2
|
# Models an line item.
|
4
3
|
class LineItem
|
5
|
-
|
6
4
|
include AuthorizeNet::Model
|
7
|
-
|
5
|
+
|
8
6
|
attr_accessor :id, :name, :description, :quantity, :price, :taxable
|
9
|
-
|
7
|
+
|
10
8
|
def to_hash
|
11
9
|
hash = {
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
10
|
+
line_item_id: @id,
|
11
|
+
line_item_name: @name,
|
12
|
+
line_item_description: @description,
|
13
|
+
line_item_quantity: @quantity,
|
14
|
+
line_item_unit_price: @price,
|
15
|
+
line_item_taxable: @taxable
|
18
16
|
}
|
19
|
-
hash.delete_if {|
|
17
|
+
hash.delete_if { |_k, v| v.nil? }
|
20
18
|
hash
|
21
19
|
end
|
22
|
-
|
23
20
|
end
|
24
|
-
|
25
|
-
end
|
21
|
+
end
|
data/lib/authorize_net/order.rb
CHANGED
@@ -1,42 +1,38 @@
|
|
1
1
|
module AuthorizeNet
|
2
|
-
|
3
2
|
# Models an order.
|
4
3
|
class Order
|
5
|
-
|
6
4
|
include AuthorizeNet::Model
|
7
|
-
|
5
|
+
|
8
6
|
attr_accessor :invoice_num, :description, :tax, :tax_name, :tax_description, :freight, :freight_name, :freight_description, :duty, :duty_name, :duty_description, :tax_exempt, :po_num, :line_items
|
9
|
-
|
7
|
+
|
10
8
|
def add_line_item(id = nil, name = nil, description = nil, quantity = nil, price = nil, taxable = nil)
|
11
|
-
if id.
|
9
|
+
if id.is_a?(AuthorizeNet::LineItem)
|
12
10
|
line_item = id
|
13
11
|
else
|
14
|
-
line_item = AuthorizeNet::LineItem.new(
|
12
|
+
line_item = AuthorizeNet::LineItem.new(id: id, name: name, description: description, quantity: quantity, price: price, taxable: taxable)
|
15
13
|
end
|
16
14
|
@line_items = @line_items.to_a << line_item
|
17
15
|
end
|
18
|
-
|
16
|
+
|
19
17
|
def to_hash
|
20
18
|
hash = {
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
19
|
+
invoice_num: @invoice_num,
|
20
|
+
description: @description,
|
21
|
+
tax: @tax,
|
22
|
+
tax_name: @tax_name,
|
23
|
+
tax_description: @tax_description,
|
24
|
+
freight: @freight,
|
25
|
+
freight_name: @freight_name,
|
26
|
+
freight_description: @freight_description,
|
27
|
+
duty: @duty,
|
28
|
+
duty_name: @duty_name,
|
29
|
+
duty_description: @duty_description,
|
30
|
+
tax_exempt: @tax_exempt,
|
31
|
+
po_num: @po_num,
|
32
|
+
line_items: handle_multivalue_hashing(@line_items)
|
35
33
|
}
|
36
|
-
hash.delete_if {|
|
34
|
+
hash.delete_if { |_k, v| v.nil? }
|
37
35
|
hash
|
38
36
|
end
|
39
|
-
|
40
37
|
end
|
41
|
-
|
42
|
-
end
|
38
|
+
end
|
@@ -1,8 +1,7 @@
|
|
1
1
|
module AuthorizeNet
|
2
|
-
|
3
2
|
# Defines constants for each payment method type.
|
4
3
|
module PaymentMethodType
|
5
|
-
CREDIT_CARD = 'CC'
|
4
|
+
CREDIT_CARD = 'CC'.freeze
|
6
5
|
end
|
7
6
|
|
8
7
|
# Models a credit card.
|
@@ -11,8 +10,8 @@ module AuthorizeNet
|
|
11
10
|
|
12
11
|
# The option defaults for the constructor.
|
13
12
|
@@option_defaults = {
|
14
|
-
:
|
15
|
-
:
|
13
|
+
card_code: nil,
|
14
|
+
card_type: nil
|
16
15
|
}
|
17
16
|
|
18
17
|
attr_accessor :card_number, :expiration, :card_code, :card_type, :track_1, :track_2
|
@@ -47,15 +46,15 @@ module AuthorizeNet
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def to_hash
|
50
|
-
|
49
|
+
{}.tap do |ch|
|
51
50
|
ch[:method] = PAYMENT_METHOD_CODE
|
52
51
|
ch[:card_num] = @card_number
|
53
52
|
ch[:exp_date] = @expiration
|
54
53
|
ch[:card_code] = @card_code if @card_code
|
55
54
|
ch[:track1] = @track_1.match(/(%|^)(.*?)(\?|$)/)[2] if @track_1
|
56
55
|
ch[:track2] = @track_2.match(/(;|^)(.*?)(\?|$)/)[2] if @track_2
|
57
|
-
#ch[:track1] = @track_1.match(/^%(?<fc>.)(?<p>[\d]{1,19}+)\^(?<n>.{2,26})\^(?<e>[\d]{0,4}|\^)(?<sc>[\d]{0,3}|\^)(?<dd>.*)\?\Z/) if @track_1
|
58
|
-
#ch[:track2] = @track_2.match(/\A;(?<pan>[\d]{1,19}+)=(?<expiration>[\d]{0,4}|=)(?<service_code>[\d]{0,3}|=)(?<discretionary_data>.*)\?\Z/) if @track_2
|
56
|
+
# ch[:track1] = @track_1.match(/^%(?<fc>.)(?<p>[\d]{1,19}+)\^(?<n>.{2,26})\^(?<e>[\d]{0,4}|\^)(?<sc>[\d]{0,3}|\^)(?<dd>.*)\?\Z/) if @track_1
|
57
|
+
# ch[:track2] = @track_2.match(/\A;(?<pan>[\d]{1,19}+)=(?<expiration>[\d]{0,4}|=)(?<service_code>[\d]{0,3}|=)(?<discretionary_data>.*)\?\Z/) if @track_2
|
59
58
|
end
|
60
59
|
end
|
61
60
|
end
|
@@ -1,42 +1,41 @@
|
|
1
1
|
module AuthorizeNet
|
2
|
-
|
3
2
|
# Defines constants for each payment method type.
|
4
3
|
module PaymentMethodType
|
5
|
-
ECHECK = 'ECHECK'
|
4
|
+
ECHECK = 'ECHECK'.freeze
|
6
5
|
end
|
7
|
-
|
6
|
+
|
8
7
|
# Models an eCheck.
|
9
8
|
class ECheck
|
10
9
|
PAYMENT_METHOD_CODE = AuthorizeNet::PaymentMethodType::ECHECK
|
11
|
-
|
10
|
+
|
12
11
|
# Defines constants for each bank account type.
|
13
12
|
module AccountType
|
14
|
-
CHECKING = 'CHECKING'
|
15
|
-
SAVINGS = 'SAVINGS'
|
16
|
-
BUSINESS_CHECKING = 'BUSINESSCHECKING'
|
13
|
+
CHECKING = 'CHECKING'.freeze
|
14
|
+
SAVINGS = 'SAVINGS'.freeze
|
15
|
+
BUSINESS_CHECKING = 'BUSINESSCHECKING'.freeze
|
17
16
|
end
|
18
|
-
|
17
|
+
|
19
18
|
# Defines constants for each check type.
|
20
19
|
module CheckType
|
21
|
-
ACCOUNTS_RECEIVABLE_CONVERSION = 'ARC'
|
22
|
-
BACK_OFFICE_CONVERSION = 'BOC'
|
23
|
-
CASH_CONCENTRATION_DISBURSEMENT = 'CCD'
|
24
|
-
PREARRANGED_PAYMENT_DEPOSIT = 'PPD'
|
25
|
-
TELEPHONE_INITIATED = 'TEL'
|
26
|
-
INTERNET_INITIATED = 'WEB'
|
20
|
+
ACCOUNTS_RECEIVABLE_CONVERSION = 'ARC'.freeze
|
21
|
+
BACK_OFFICE_CONVERSION = 'BOC'.freeze
|
22
|
+
CASH_CONCENTRATION_DISBURSEMENT = 'CCD'.freeze
|
23
|
+
PREARRANGED_PAYMENT_DEPOSIT = 'PPD'.freeze
|
24
|
+
TELEPHONE_INITIATED = 'TEL'.freeze
|
25
|
+
INTERNET_INITIATED = 'WEB'.freeze
|
27
26
|
end
|
28
|
-
|
27
|
+
|
29
28
|
# The option defaults for the constructor.
|
30
29
|
@@option_defaults = {
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
30
|
+
echeck_type: CheckType::INTERNET_INITIATED,
|
31
|
+
check_number: nil,
|
32
|
+
account_type: AccountType::CHECKING
|
34
33
|
}
|
35
|
-
|
34
|
+
|
36
35
|
attr_accessor :routing_number, :account_number, :bank_name, :account_holder_name, :echeck_type, :check_number, :account_type
|
37
|
-
|
36
|
+
|
38
37
|
# Constructs a new eCheck object.
|
39
|
-
#
|
38
|
+
#
|
40
39
|
# +routing_number+:: The bank routing number as a string.
|
41
40
|
# +account_number+:: The bank account number as a string.
|
42
41
|
# +bank_name+:: The legal name of the bank. This should match the name associated with the +routing_number+.
|
@@ -53,20 +52,19 @@ module AuthorizeNet
|
|
53
52
|
@check_number = options[:check_number]
|
54
53
|
@account_type = options[:account_type]
|
55
54
|
end
|
56
|
-
|
55
|
+
|
57
56
|
def to_hash
|
58
57
|
hash = {
|
59
|
-
:
|
60
|
-
:
|
61
|
-
:
|
62
|
-
:
|
63
|
-
:
|
64
|
-
:
|
65
|
-
:
|
58
|
+
method: PAYMENT_METHOD_CODE,
|
59
|
+
bank_aba_code: @routing_number,
|
60
|
+
bank_acct_num: @account_number,
|
61
|
+
bank_acct_type: @account_type,
|
62
|
+
bank_name: @bank_name,
|
63
|
+
bank_acct_name: @account_holder_name,
|
64
|
+
echeck_type: @echeck_type
|
66
65
|
}
|
67
66
|
hash[:bank_check_number] = @check_number unless @check_number.nil?
|
68
67
|
hash
|
69
68
|
end
|
70
69
|
end
|
71
|
-
|
72
|
-
end
|
70
|
+
end
|
@@ -1,19 +1,16 @@
|
|
1
1
|
module AuthorizeNet::Reporting
|
2
|
-
|
3
2
|
# Models a batch of credit cards.
|
4
3
|
class Batch
|
5
|
-
|
6
4
|
include AuthorizeNet::Model
|
7
|
-
|
5
|
+
|
8
6
|
attr_accessor :id, :settled_at, :state, :statistics, :payment_method
|
9
|
-
|
7
|
+
|
10
8
|
def settled_at=(time)
|
11
|
-
if time.
|
9
|
+
if time.is_a?(DateTime)
|
12
10
|
@settled_at = time
|
13
11
|
else
|
14
12
|
@settled_at = DateTime.parse(time.to_s)
|
15
13
|
end
|
16
14
|
end
|
17
15
|
end
|
18
|
-
|
19
|
-
end
|
16
|
+
end
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module AuthorizeNet::Reporting
|
2
|
-
|
3
2
|
# Models a batch of credit cards.
|
4
3
|
class BatchStatistics
|
5
|
-
|
6
4
|
include AuthorizeNet::Model
|
7
|
-
|
5
|
+
|
8
6
|
attr_accessor :account_type, :charge_count, :charge_amount, :refund_count,
|
9
7
|
:refund_amount, :void_count, :decline_count, :error_count,
|
10
8
|
:returned_item_amount, :returned_item_count, :chargeback_count,
|
@@ -13,7 +11,5 @@ module AuthorizeNet::Reporting
|
|
13
11
|
:refund_chargeback_count, :charge_returned_items_amount,
|
14
12
|
:charge_returned_items_count, :refund_returned_items_amount,
|
15
13
|
:refund_returned_items_count
|
16
|
-
|
17
14
|
end
|
18
|
-
|
19
|
-
end
|
15
|
+
end
|
@@ -1,10 +1,8 @@
|
|
1
1
|
module AuthorizeNet::Reporting
|
2
|
-
|
3
2
|
# The CIM response class.
|
4
3
|
class Response < AuthorizeNet::XmlResponse
|
5
|
-
|
6
4
|
include AuthorizeNet::CIM::Fields
|
7
|
-
|
5
|
+
|
8
6
|
# Constructs a new response object from raw_response in the context of transaction.
|
9
7
|
# You don‘t typically construct this object yourself, as AuthorizeNet::Reeporting::Transaction
|
10
8
|
# will build one for you when it makes the request to the gateway.
|
@@ -15,13 +13,12 @@ module AuthorizeNet::Reporting
|
|
15
13
|
@batch_list = @root.at_css('batchList')
|
16
14
|
@transactions = @root.at_css('transactions')
|
17
15
|
@transaction = @root.at_css('transaction')
|
18
|
-
rescue
|
19
|
-
@raw_response =
|
16
|
+
rescue StandardError
|
17
|
+
@raw_response = $ERROR_INFO
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
23
|
-
|
24
|
-
|
21
|
+
|
25
22
|
# Returns an Array of Batch objects built from the entities returned in the response. Returns nil if no batchList was returned.
|
26
23
|
def batch_list
|
27
24
|
unless @batch_list.nil?
|
@@ -29,104 +26,102 @@ module AuthorizeNet::Reporting
|
|
29
26
|
@batch_list.element_children.each do |child|
|
30
27
|
batches <<= build_entity(child, Fields::BATCH_ENTITY_DESCRIPTION) unless child.nil?
|
31
28
|
end
|
32
|
-
return batches unless batches.
|
29
|
+
return batches unless batches.empty?
|
33
30
|
end
|
34
31
|
end
|
35
|
-
|
32
|
+
|
36
33
|
# Returns an Array of TransactionDetail objects built from the entities returned in the response. Returns nil if no transactions were returned.
|
37
34
|
def transactions
|
38
35
|
unless @transactions.nil?
|
39
36
|
transactions = []
|
40
37
|
@transactions.element_children.each do |child|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
invoice_number = node_content_unless_nil(child.at_css('invoiceNumber'))
|
52
|
-
unless invoice_number.nil?
|
53
|
-
transaction.order = AuthorizeNet::Order.new(:invoice_num => invoice_number)
|
54
|
-
end
|
55
|
-
subscription = child.at_css('subscription')
|
56
|
-
unless subscription.nil?
|
57
|
-
subscription_id = node_content_unless_nil(child.at_css('subscription').at_css('id'))
|
58
|
-
transaction.subscription_id = subscription_id unless subscription_id.nil?
|
59
|
-
|
60
|
-
pay_num = node_content_unless_nil(child.at_css('subscription').at_css('payNum'))
|
61
|
-
transaction.subscription_paynum = pay_num unless pay_num.nil?
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
transactions <<= transaction
|
38
|
+
next if child.nil?
|
39
|
+
transaction = build_entity(child, Fields::TRANSACTION_DETAILS_ENTITY_DESCRIPTION)
|
40
|
+
|
41
|
+
# handle some stuff thats too tricky for EntityDecription to handle
|
42
|
+
first_name = node_content_unless_nil(child.at_css('firstName'))
|
43
|
+
last_name = node_content_unless_nil(child.at_css('lastName'))
|
44
|
+
unless first_name.nil? && last_name.nil?
|
45
|
+
address = AuthorizeNet::Address.new(first_name: first_name, last_name: last_name)
|
46
|
+
transaction.customer = AuthorizeNet::Customer.new(address: address)
|
66
47
|
end
|
48
|
+
invoice_number = node_content_unless_nil(child.at_css('invoiceNumber'))
|
49
|
+
unless invoice_number.nil?
|
50
|
+
transaction.order = AuthorizeNet::Order.new(invoice_num: invoice_number)
|
51
|
+
end
|
52
|
+
subscription = child.at_css('subscription')
|
53
|
+
unless subscription.nil?
|
54
|
+
subscription_id = node_content_unless_nil(child.at_css('subscription').at_css('id'))
|
55
|
+
transaction.subscription_id = subscription_id unless subscription_id.nil?
|
56
|
+
|
57
|
+
pay_num = node_content_unless_nil(child.at_css('subscription').at_css('payNum'))
|
58
|
+
transaction.subscription_paynum = pay_num unless pay_num.nil?
|
59
|
+
end
|
60
|
+
|
61
|
+
transactions <<= transaction
|
67
62
|
end
|
68
|
-
return transactions unless transactions.
|
63
|
+
return transactions unless transactions.empty?
|
69
64
|
end
|
70
65
|
end
|
71
|
-
|
66
|
+
|
72
67
|
# Builds and returns a TransactionDetail entity built from the response. If no transaction was found, returns nil.
|
73
68
|
def transaction
|
74
69
|
unless @transaction.nil?
|
75
70
|
transaction = build_entity(@transaction, Fields::TRANSACTION_DETAILS_ENTITY_DESCRIPTION)
|
76
|
-
|
71
|
+
|
77
72
|
ip = node_content_unless_nil(@transaction.at_css('customerIP'))
|
78
73
|
unless ip.nil?
|
79
|
-
transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new
|
74
|
+
transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new
|
80
75
|
transaction.customer.ip = ip
|
81
76
|
end
|
82
|
-
|
77
|
+
|
83
78
|
tax_exempt = node_content_unless_nil(@transaction.at_css('taxExempt'))
|
84
79
|
unless tax_exempt.nil?
|
85
|
-
transaction.order ||= AuthorizeNet::Order.new
|
80
|
+
transaction.order ||= AuthorizeNet::Order.new
|
86
81
|
transaction.order.tax_exempt = value_to_boolean(tax_exempt)
|
87
82
|
end
|
88
|
-
|
83
|
+
|
89
84
|
tax = @transaction.at_css('tax')
|
90
85
|
unless tax.nil?
|
91
|
-
transaction.order ||= AuthorizeNet::Order.new
|
86
|
+
transaction.order ||= AuthorizeNet::Order.new
|
92
87
|
tax_amount = node_content_unless_nil(tax.at_css('amount'))
|
93
|
-
transaction.order.
|
88
|
+
transaction.order.tax = value_to_decimal(tax_amount) unless tax_amount.nil?
|
94
89
|
transaction.order.tax_name = node_content_unless_nil(tax.at_css('name'))
|
95
90
|
transaction.order.tax_description = node_content_unless_nil(tax.at_css('description'))
|
96
91
|
end
|
97
|
-
|
92
|
+
|
98
93
|
shipping = @transaction.at_css('shipping')
|
99
94
|
unless shipping.nil?
|
100
|
-
transaction.order ||= AuthorizeNet::Order.new
|
95
|
+
transaction.order ||= AuthorizeNet::Order.new
|
101
96
|
shipping_amount = node_content_unless_nil(shipping.at_css('amount'))
|
102
|
-
transaction.order.
|
103
|
-
transaction.order.
|
104
|
-
transaction.order.
|
97
|
+
transaction.order.freight = value_to_decimal(shipping_amount) unless shipping_amount.nil?
|
98
|
+
transaction.order.freight_name = node_content_unless_nil(shipping.at_css('name'))
|
99
|
+
transaction.order.freight_description = node_content_unless_nil(shipping.at_css('description'))
|
105
100
|
end
|
106
|
-
|
101
|
+
|
107
102
|
duty = @transaction.at_css('duty')
|
108
103
|
unless duty.nil?
|
109
|
-
transaction.order ||= AuthorizeNet::Order.new
|
104
|
+
transaction.order ||= AuthorizeNet::Order.new
|
110
105
|
duty_amount = node_content_unless_nil(duty.at_css('amount'))
|
111
|
-
transaction.order.
|
106
|
+
transaction.order.duty = value_to_decimal(duty_amount) unless duty_amount.nil?
|
112
107
|
transaction.order.duty_name = node_content_unless_nil(duty.at_css('name'))
|
113
108
|
transaction.order.duty_description = node_content_unless_nil(duty.at_css('description'))
|
114
109
|
end
|
115
|
-
|
110
|
+
|
116
111
|
line_items = @transaction.at_css('lineItems')
|
117
112
|
unless line_items.nil?
|
118
|
-
transaction.order ||= AuthorizeNet::Order.new
|
113
|
+
transaction.order ||= AuthorizeNet::Order.new
|
119
114
|
line_items.element_children.each do |child|
|
120
115
|
line_item = build_entity(child, Fields::LINE_ITEM_ENTITY_DESCRIPTION)
|
121
116
|
transaction.order.add_line_item(line_item)
|
122
117
|
end
|
123
118
|
end
|
124
|
-
|
119
|
+
|
125
120
|
# Really not sure what to do with customer type here. It should go on a payment
|
126
121
|
customer_type = node_content_unless_nil(@transaction.at_css('customer type'))
|
127
122
|
unless customer_type.nil?
|
128
|
-
transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new
|
129
|
-
transaction.customer.payment_profiles = [AuthorizeNet::CIM::PaymentProfile.new(:
|
123
|
+
transaction.customer ||= AuthorizeNet::CIM::CustomerProfile.new
|
124
|
+
transaction.customer.payment_profiles = [AuthorizeNet::CIM::PaymentProfile.new(cust_type: customer_type)]
|
130
125
|
end
|
131
126
|
|
132
127
|
subscription = @transaction.at_css('subscription')
|
@@ -141,7 +136,7 @@ module AuthorizeNet::Reporting
|
|
141
136
|
solution = @transaction.at_css('solution')
|
142
137
|
unless solution.nil?
|
143
138
|
solution_id = node_content_unless_nil(@transaction.at_css('solution').at_css('id'))
|
144
|
-
transaction.solution_id =
|
139
|
+
transaction.solution_id = solution_id unless solution_id.nil?
|
145
140
|
|
146
141
|
transaction.solution_name = node_content_unless_nil(@transaction.at_css('solution').at_css('name'))
|
147
142
|
end
|
@@ -155,9 +150,8 @@ module AuthorizeNet::Reporting
|
|
155
150
|
end
|
156
151
|
end
|
157
152
|
|
158
|
-
|
153
|
+
transaction
|
159
154
|
end
|
160
155
|
end
|
161
|
-
|
162
156
|
end
|
163
|
-
end
|
157
|
+
end
|