authorizenet 1.9.4 → 2.0.1

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 (73) hide show
  1. checksums.yaml +5 -5
  2. data/lib/app/helpers/authorize_net_helper.rb +2 -3
  3. data/lib/authorize_net.rb +11 -56
  4. data/lib/authorize_net/api/LogHelper.rb +97 -0
  5. data/lib/authorize_net/api/SensitiveDataFilter.rb +92 -0
  6. data/lib/authorize_net/api/api_transaction.rb +95 -90
  7. data/lib/authorize_net/api/constants.yml +1 -1
  8. data/lib/authorize_net/api/schema.rb +1353 -994
  9. data/lib/authorize_net/api/transaction.rb +104 -102
  10. data/lib/authorize_net/authorize_net.rb +20 -27
  11. data/lib/authorize_net/response.rb +9 -15
  12. data/lib/authorize_net/transaction.rb +18 -26
  13. data/lib/authorize_net/xml_response.rb +36 -54
  14. data/lib/authorize_net/xml_transaction.rb +115 -134
  15. metadata +59 -73
  16. data/lib/authorize_net/addresses/address.rb +0 -29
  17. data/lib/authorize_net/addresses/shipping_address.rb +0 -26
  18. data/lib/authorize_net/aim/response.rb +0 -131
  19. data/lib/authorize_net/aim/transaction.rb +0 -190
  20. data/lib/authorize_net/arb/fields.rb +0 -24
  21. data/lib/authorize_net/arb/paging.rb +0 -33
  22. data/lib/authorize_net/arb/response.rb +0 -34
  23. data/lib/authorize_net/arb/sorting.rb +0 -43
  24. data/lib/authorize_net/arb/subscription.rb +0 -72
  25. data/lib/authorize_net/arb/subscription_detail.rb +0 -14
  26. data/lib/authorize_net/arb/subscription_list_response.rb +0 -43
  27. data/lib/authorize_net/arb/transaction.rb +0 -177
  28. data/lib/authorize_net/cim/customer_profile.rb +0 -19
  29. data/lib/authorize_net/cim/payment_profile.rb +0 -37
  30. data/lib/authorize_net/cim/response.rb +0 -116
  31. data/lib/authorize_net/cim/transaction.rb +0 -727
  32. data/lib/authorize_net/customer.rb +0 -27
  33. data/lib/authorize_net/email_receipt.rb +0 -24
  34. data/lib/authorize_net/fields.rb +0 -779
  35. data/lib/authorize_net/key_value_response.rb +0 -117
  36. data/lib/authorize_net/key_value_transaction.rb +0 -291
  37. data/lib/authorize_net/line_item.rb +0 -25
  38. data/lib/authorize_net/order.rb +0 -42
  39. data/lib/authorize_net/payment_methods/credit_card.rb +0 -62
  40. data/lib/authorize_net/payment_methods/echeck.rb +0 -72
  41. data/lib/authorize_net/reporting/batch.rb +0 -19
  42. data/lib/authorize_net/reporting/batch_statistics.rb +0 -19
  43. data/lib/authorize_net/reporting/fds_filter.rb +0 -11
  44. data/lib/authorize_net/reporting/response.rb +0 -163
  45. data/lib/authorize_net/reporting/returned_item.rb +0 -46
  46. data/lib/authorize_net/reporting/transaction.rb +0 -133
  47. data/lib/authorize_net/reporting/transaction_details.rb +0 -25
  48. data/lib/authorize_net/sim/hosted_payment_form.rb +0 -38
  49. data/lib/authorize_net/sim/hosted_receipt_page.rb +0 -37
  50. data/lib/authorize_net/sim/response.rb +0 -142
  51. data/lib/authorize_net/sim/transaction.rb +0 -138
  52. data/lib/generators/authorize_net/direct_post/direct_post_generator.rb +0 -53
  53. data/lib/generators/authorize_net/direct_post/templates/README-AuthorizeNet +0 -49
  54. data/lib/generators/authorize_net/direct_post/templates/config.yml.erb +0 -8
  55. data/lib/generators/authorize_net/direct_post/templates/config.yml.rails3.erb +0 -8
  56. data/lib/generators/authorize_net/direct_post/templates/controller.rb.erb +0 -31
  57. data/lib/generators/authorize_net/direct_post/templates/initializer.rb +0 -4
  58. data/lib/generators/authorize_net/direct_post/templates/layout.erb +0 -18
  59. data/lib/generators/authorize_net/direct_post/templates/payment.erb +0 -10
  60. data/lib/generators/authorize_net/direct_post/templates/payment.rails3.erb +0 -10
  61. data/lib/generators/authorize_net/direct_post/templates/receipt.erb +0 -1
  62. data/lib/generators/authorize_net/direct_post/templates/relay_response.erb +0 -1
  63. data/lib/generators/authorize_net/sim/sim_generator.rb +0 -47
  64. data/lib/generators/authorize_net/sim/templates/README-AuthorizeNet +0 -52
  65. data/lib/generators/authorize_net/sim/templates/config.yml.erb +0 -8
  66. data/lib/generators/authorize_net/sim/templates/config.yml.rails3.erb +0 -8
  67. data/lib/generators/authorize_net/sim/templates/controller.rb.erb +0 -21
  68. data/lib/generators/authorize_net/sim/templates/initializer.rb +0 -4
  69. data/lib/generators/authorize_net/sim/templates/layout.erb +0 -18
  70. data/lib/generators/authorize_net/sim/templates/payment.erb +0 -6
  71. data/lib/generators/authorize_net/sim/templates/payment.rails3.erb +0 -6
  72. data/lib/generators/authorize_net/sim/templates/thank_you.erb +0 -1
  73. data/lib/generators/generator_extensions.rb +0 -75
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fdc6b7f7d2066705389a3e6de82342122e5f0269
4
- data.tar.gz: af3dfb28bfd9821e610a811464970066b7c6fcb4
2
+ SHA256:
3
+ metadata.gz: 97d213dfc079edcb493e06b538e45ea48b7109dcc8a9ee0048c19a37f810b677
4
+ data.tar.gz: 384c4b78ca409bd61f0b19dd7aa0291ec26a47e5687fc68a6e5938e620cc8b4d
5
5
  SHA512:
6
- metadata.gz: a3c1047f8a572d31cf9798f2343043c85a8913abb42e24117253d052c79fbd03174f33f8b343be732685f8bdfaa4bf0bb457a1cce3bd62270b0b432fae07eb2d
7
- data.tar.gz: 4ce68ca0f15b4a0304541927ba010bc7e5373c8acef649cca9356bcded77a55aa47bfab552ddf1c8c2299c13547393116b75a0cd5e47fac0bbfa8e1b6d5be617
6
+ metadata.gz: e08e6c0a987090ffd06ba7abfa855bee01fb1d6dedbef668a78c106a0bac0a4fdf6da2ec733f2882d8fd276caac87aaf2fcbad0a414c238e72fff6e3aa49b1b3
7
+ data.tar.gz: 6f774b50617975905fda052796d92f0c00c576d48e4b446183c3c5f4ed99433bbd8b2eab8082ee13988aee9d598901b8f12dec5f05269c3d02d7a88cf8011129
@@ -1,13 +1,12 @@
1
1
  # The Authorize.Net Rails Helper module. Provides methods to assist with integrating the various APIs.
2
2
 
3
3
  module AuthorizeNetHelper
4
-
5
4
  # Generates a collection of hidden form fields (as a raw HTML string) for a AuthorizeNet::SIM::Transaction
6
5
  # (sim_transaction). You can specify any html_options that hidden_field_tag accepts, and the
7
6
  # hidden fields will be built with those options.
8
7
  def sim_fields(sim_transaction, html_options = {})
9
8
  fields = sim_transaction.form_fields.collect do |k, v|
10
- if v.kind_of? Array
9
+ if v.is_a? Array
11
10
  v.collect { |val| hidden_field_tag(k, val, html_options) }
12
11
  else
13
12
  hidden_field_tag(k, v, html_options)
@@ -21,4 +20,4 @@ module AuthorizeNetHelper
21
20
  return field_str
22
21
  end
23
22
  end
24
- end
23
+ end
data/lib/authorize_net.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # the current runtime to see if Rails is present. If it is, we inject our helper into
3
3
  # ActiveSupport.
4
4
 
5
- #coverall
5
+ # coverall
6
6
  # require 'coveralls'
7
7
  # Coveralls.wear!
8
8
 
@@ -16,78 +16,33 @@ require 'date'
16
16
 
17
17
  # TODO: Add local data validation where possible
18
18
 
19
- $:.unshift File.dirname(__FILE__)
19
+ $LOAD_PATH.unshift File.dirname(__FILE__)
20
20
 
21
21
  require "authorize_net/authorize_net"
22
- require "authorize_net/payment_methods/credit_card"
23
- require "authorize_net/payment_methods/echeck"
24
- require "authorize_net/addresses/address"
25
- require "authorize_net/addresses/shipping_address"
26
- require "authorize_net/customer"
27
- require "authorize_net/email_receipt"
28
- require "authorize_net/order"
29
- require "authorize_net/line_item"
30
- require "authorize_net/cim/payment_profile"
31
- require "authorize_net/cim/customer_profile"
32
- require "authorize_net/reporting/batch"
33
- require "authorize_net/reporting/batch_statistics"
34
- require "authorize_net/reporting/transaction_details"
35
- require "authorize_net/reporting/fds_filter"
36
- require "authorize_net/reporting/returned_item"
22
+ # require "authorize_net/customer"
23
+ # require "authorize_net/email_receipt"
24
+ # require "authorize_net/order"
25
+ # require "authorize_net/line_item"
37
26
  require "authorize_net/response"
38
- require "authorize_net/key_value_response"
27
+ # require "authorize_net/key_value_response"
39
28
  require "authorize_net/xml_response"
40
29
  require "authorize_net/transaction"
41
- require "authorize_net/key_value_transaction"
30
+ # require "authorize_net/key_value_transaction"
42
31
  require "authorize_net/xml_transaction"
43
- require "authorize_net/fields"
44
-
45
- # AIM
46
-
47
- require "authorize_net/aim/transaction"
48
- require "authorize_net/aim/response"
49
32
 
50
33
  # API
51
34
  require "authorize_net/api/schema"
52
35
  require "authorize_net/api/api_transaction"
53
36
  require "authorize_net/api/transaction"
54
37
 
55
- # SIM
56
-
57
- require "authorize_net/sim/hosted_payment_form"
58
- require "authorize_net/sim/hosted_receipt_page"
59
- require "authorize_net/sim/transaction"
60
- require "authorize_net/sim/response"
61
-
62
- # ARB
63
-
64
- require "authorize_net/arb/paging"
65
- require "authorize_net/arb/sorting"
66
- require "authorize_net/arb/subscription_list_response"
67
- require "authorize_net/arb/subscription_detail"
68
- require "authorize_net/arb/fields"
69
- require "authorize_net/arb/subscription"
70
- require "authorize_net/arb/response"
71
- require "authorize_net/arb/transaction"
72
-
73
- # CIM
74
-
75
- require "authorize_net/cim/response"
76
- require "authorize_net/cim/transaction"
77
-
78
- # Reporting
79
-
80
- require "authorize_net/reporting/response"
81
- require "authorize_net/reporting/transaction"
82
-
83
38
  # Load our Rails plugin
84
39
 
85
40
  if defined?(Rails)
86
41
  if defined?(Rails::Railtie)
87
42
  module AuthorizeNet
88
43
  class Railtie < Rails::Railtie
89
- initializer "authorize_net.load_path_initialize" do |app|
90
- %w{ models controllers helpers }.each do |dir|
44
+ initializer "authorize_net.load_path_initialize" do |_app|
45
+ %w[models controllers helpers].each do |dir|
91
46
  path = File.join(File.dirname(__FILE__), 'app', dir)
92
47
  $LOAD_PATH << path
93
48
  ActiveSupport::Dependencies.autoload_paths << path
@@ -97,7 +52,7 @@ if defined?(Rails)
97
52
  end
98
53
  end
99
54
  else
100
- %w{ models controllers helpers }.each do |dir|
55
+ %w[models controllers helpers].each do |dir|
101
56
  path = File.join(File.dirname(__FILE__), 'app', dir)
102
57
  $LOAD_PATH << path
103
58
  ActiveSupport::Dependencies.load_paths << path
@@ -0,0 +1,97 @@
1
+ require 'logger'
2
+ require 'yaml'
3
+ require File.join File.dirname(__FILE__), 'SensitiveDataFilter'
4
+
5
+ module AuthorizeNet::API
6
+ class Log
7
+ @@shouldLog = false
8
+ @@loglevels = ['debug','info','warn','error']
9
+ def initialize()
10
+ begin
11
+ filepath = './LogConfig.yml'
12
+ if(File.file?(filepath))
13
+ cnf = YAML::load(File.open(filepath))
14
+ if(@@loglevels.include? cnf['loglevel'].downcase)
15
+ @@shouldLog = true
16
+ @logger = Logger.new(cnf['filepath'])
17
+ @logger.level = LogLevelMapper(cnf['loglevel'].downcase)
18
+ if(cnf['maskSensitiveData'])
19
+ @logger.formatter = SensitiveDataFilter.new
20
+ else
21
+ constants = YAML.load_file(File.dirname(__FILE__) + "/constants.yml")
22
+ @logger.formatter = proc do |severity, datetime, progname, msg|
23
+ progname = constants['clientId']
24
+ date_format = datetime.strftime("%Y-%m-%d %H:%M:%S")
25
+ if severity == "INFO" or severity == "WARN"
26
+ "[#{date_format}] #{severity} (#{progname}): #{msg}\n"
27
+ else
28
+ "[#{date_format}] #{severity} (#{progname}): #{msg}\n"
29
+ end
30
+ end
31
+ end
32
+ else
33
+ raise "Invalid log levels"
34
+ end
35
+ else
36
+ @@shouldLog = false
37
+ end
38
+ rescue
39
+ @@shouldLog = false
40
+ end
41
+ end
42
+ def debug(message)
43
+ if(@@shouldLog)
44
+ begin
45
+ @logger.debug message
46
+ rescue Exception => ex
47
+ ex
48
+ end
49
+ end
50
+ end
51
+ def info(message)
52
+ if(@@shouldLog)
53
+ begin
54
+ @logger.info message
55
+ rescue Exception => ex
56
+ ex
57
+ end
58
+ end
59
+ end
60
+ def warn(message)
61
+ if(@@shouldLog)
62
+ begin
63
+ @logger.warn message
64
+ rescue Exception => ex
65
+ ex
66
+ end
67
+ end
68
+ end
69
+ def error(message)
70
+ if(@@shouldLog)
71
+ begin
72
+ @logger.error message
73
+ rescue Exception => ex
74
+ ex
75
+ end
76
+ end
77
+ end
78
+ def LogLevelMapper(loglevel)
79
+ case loglevel
80
+ when 'debug'
81
+ Logger::DEBUG
82
+ when 'info'
83
+ Logger::INFO
84
+ when 'warn'
85
+ Logger::WARN
86
+ when 'error'
87
+ Logger::ERROR
88
+ end
89
+ end
90
+ end
91
+
92
+ class LogHelper
93
+ def self.log
94
+ Log.new
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,92 @@
1
+ require 'logger'
2
+
3
+ module AuthorizeNet::API
4
+ class SensitiveTag
5
+ attr_accessor :tagName, :pattern, :replacement, :disableMask
6
+ def initialize(tagName, pattern, replacement, disableMask)
7
+ @tagName = tagName
8
+ @pattern = pattern
9
+ @replacement = replacement
10
+ @disableMask = disableMask
11
+ end
12
+ end
13
+
14
+ class SensitiveDataConfigType
15
+ attr_accessor :sensitiveTags, :sensitiveStringRegexes
16
+ def initialize
17
+ @sensitiveTags = Array.new([SensitiveTag.new("cardCode", "", "XXX", false),
18
+ SensitiveTag.new("cardNumber", "(\\p{N}+)(\\p{N}{4})", "XXXX-\\2", false),
19
+ SensitiveTag.new("expirationDate", "", "XXX", false),
20
+ SensitiveTag.new("accountNumber", "(\\p{N}+)(\\p{N}{4})", "XXXX-\\2", false),
21
+ SensitiveTag.new("nameOnAccount", "", "XXX", false),
22
+ SensitiveTag.new("transactionKey", "", "XXX", false)]).freeze
23
+ @sensitiveStringRegexes = ["4\\p{N}{3}([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
24
+ "4\\p{N}{3}([\\ \\-]?)(?:\\p{N}{4}\\1){2}\\p{N}(?:\\p{N}{3})?",
25
+ "5[1-5]\\p{N}{2}([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
26
+ "6(?:011|22(?:1(?=[\\ \\-]?(?:2[6-9]|[3-9]))|[2-8]|9(?=[\\ \\-]?(?:[01]|2[0-5])))|4[4-9]\\p{N}|5\\p{N}\\p{N})([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
27
+ "35(?:2[89]|[3-8]\\p{N})([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
28
+ "3[47]\\p{N}\\p{N}([\\ \\-]?)\\p{N}{6}\\1\\p{N}{5}"].freeze
29
+ end
30
+ end
31
+
32
+ class SensitiveDataFilter < Logger::Formatter
33
+ @@sensitiveTagConfig = nil
34
+ @@tagPatterns = nil
35
+ @@tagReplacements = nil
36
+ @@cardPatterns = nil
37
+
38
+ def initialize
39
+ @@sensitiveTagConfig = SensitiveDataConfigType.new
40
+ @@cardPatterns = @@sensitiveTagConfig.sensitiveStringRegexes
41
+ @@tagPatterns = Array.new(@@sensitiveTagConfig.sensitiveStringRegexes.length)
42
+ @@tagReplacements = Array.new(@@sensitiveTagConfig.sensitiveTags.length)
43
+
44
+ @@sensitiveTagConfig.sensitiveTags.each_with_index do |sensitiveTag, index|
45
+ tagName = sensitiveTag.tagName
46
+ replacement = sensitiveTag.replacement
47
+
48
+ if sensitiveTag.pattern.nil? || sensitiveTag.pattern.empty?
49
+ pattern = "(.*)"
50
+ else
51
+ pattern = sensitiveTag.pattern
52
+ end
53
+
54
+ @@tagPatterns[index] = "<"+tagName+">"+pattern+"</"+tagName+">"
55
+ @@tagReplacements[index] = "<"+tagName+">"+replacement+"</"+tagName+">"
56
+ end
57
+ end
58
+
59
+ def call(severity, time, progname, msg)
60
+ xmlMaskedLog = maskSensitiveXmlString(msg)
61
+ ccMasked = maskCreditCards(xmlMaskedLog)
62
+ return formatLogEntry(severity, time, progname, ccMasked)
63
+ end
64
+
65
+ def maskCreditCards(input)
66
+ input = input.force_encoding("UTF-8")
67
+ @@cardPatterns.each {|cardNumberRegex|
68
+ input = input.gsub(/#{cardNumberRegex}/, "XXX")
69
+ }
70
+ return input
71
+ end
72
+
73
+ def maskSensitiveXmlString(input)
74
+ input = input.force_encoding("UTF-8")
75
+ @@tagPatterns.each_with_index do |item, index|
76
+ input = input.gsub(/#{item}/,@@tagReplacements[index])
77
+ end
78
+ return input
79
+ end
80
+
81
+ def formatLogEntry(severity, time, progname, msg)
82
+ constants = YAML.load_file(File.dirname(__FILE__) + "/constants.yml")
83
+ progname = constants['clientId']
84
+ date_format = time.strftime("%Y-%m-%d %H:%M:%S")
85
+ if severity == "INFO" or severity == "WARN"
86
+ "[#{date_format}] #{severity} (#{progname}): #{msg}\n"
87
+ else
88
+ "[#{date_format}] #{severity} (#{progname}): #{msg}\n"
89
+ end
90
+ end
91
+ end
92
+ end
@@ -1,105 +1,110 @@
1
+ require File.join File.dirname(__FILE__), 'LogHelper'
2
+
1
3
  module AuthorizeNet::API
2
4
  class ApiTransaction < AuthorizeNet::XmlTransaction
3
-
4
5
  module Type
5
- API_CREATE_TRANSACTION = "createTransactionRequest"
6
- API_UPDATE_SPLIT_TENDER_GROUP = "updateSplitTenderGroupRequest"
7
-
8
- API_CREATE_SUBSCRIPTION = "ARBCreateSubscriptionRequest"
9
- API_UPDATE_SUBSCRIPTION = "ARBUpdateSubscriptionRequest"
10
- API_CANCEL_SUBSCRIPTION = "ARBCancelSubscriptionRequest"
11
- API_GET_SUBSCRIPTION_STATUS = "ARBGetSubscriptionStatusRequest"
12
- API_GET_SUBSCRIPTION_LIST = "ARBGetSubscriptionListRequest"
13
-
14
- API_GET_CUSTOMER_PROFILE_IDS = "getCustomerProfileIdsRequest"
15
-
16
- API_CREATE_CUSTOMER_PROFILE = "createCustomerProfileRequest"
17
- API_GET_CUSTOMER_PROFILE = "getCustomerProfileRequest"
18
- API_UPDATE_CUSTOMER_PROFILE = "updateCustomerProfileRequest"
19
- API_DELETE_CUSTOMER_PROFILE = "deleteCustomerProfileRequest"
20
-
21
- API_CREATE_CUSTOMER_PAYMENT_PROFILE = "createCustomerPaymentProfileRequest"
22
- API_GET_CUSTOMER_PAYMENT_PROFILE = "getCustomerPaymentProfileRequest"
23
- API_UPDATE_CUSTOMER_PAYMENT_PROFILE = "updateCustomerPaymentProfileRequest"
24
- API_VALIDATE_CUSTOMER_PAYMENT_PROFILE = "validateCustomerPaymentProfileRequest"
25
- API_DELETE_CUSTOMER_PAYMENT_PROFILE = "deleteCustomerPaymentProfileRequest"
26
-
27
- API_CREATE_CUSTOMER_SHIPPING_PROFILE = "createCustomerShippingAddressRequest"
28
- API_GET_CUSTOMER_SHIPPING_PROFILE = "getCustomerShippingAddressRequest"
29
- API_UPDATE_CUSTOMER_SHIPPING_PROFILE = "updateCustomerShippingAddressRequest"
30
- API_DELETE_CUSTOMER_SHIPPING_PROFILE = "deleteCustomerShippingAddressRequest"
31
-
32
- API_CREATE_CUSTOMER_PROFILE_FROM_TRANSACTION = "createCustomerProfileFromTransactionRequest"
33
-
34
- API_GET_SETTLED_BATCH_LIST = "getSettledBatchListRequest"
35
- API_GET_TRANSACTION_LIST = "getTransactionListRequest"
36
- API_GET_TRANSACTION_DETAILS = "getTransactionDetailsRequest"
37
- API_GET_UNSETTLED_TRANSACTION_LIST = "getUnsettledTransactionListRequest"
38
- API_GET_BATCH_STATISTICS = "getBatchStatisticsRequest"
39
- API_GET_TRANSACTION_LIST_FOR_CUSTOMER = "getTransactionListForCustomerRequest"
40
-
41
- API_GET_HOSTED_PROFILE_PAGE = "getHostedProfilePageRequest"
42
-
43
-
44
- API_DECRYPT_PAYMENT_DATA = "decryptPaymentDataRequest"
45
- API_AUTHENTICATE_TEST_REQUEST = "authenticateTestRequest"
46
-
47
- API_GET_CUSTOMER_PAYMENT_PROFILE_LIST = "getCustomerPaymentProfileListRequest"
48
-
49
- API_ARB_GET_SUBSCRIPTION_REQUEST = "ARBGetSubscriptionRequest"
50
-
51
- API_GET_MERCHANT_DETAILS = "getMerchantDetailsRequest"
52
- API_GET_HOSTED_PAYMENT_PAGE = "getHostedPaymentPageRequest"
53
- API_UDPATE_HELD_TRANSACTION = "updateHeldTransactionRequest"
54
- API_UPDATE_MERCHANT_DETAILS = "updateMerchantDetailsRequest"
6
+ API_CREATE_TRANSACTION = "createTransactionRequest".freeze
7
+ API_UPDATE_SPLIT_TENDER_GROUP = "updateSplitTenderGroupRequest".freeze
8
+
9
+ API_CREATE_SUBSCRIPTION = "ARBCreateSubscriptionRequest".freeze
10
+ API_UPDATE_SUBSCRIPTION = "ARBUpdateSubscriptionRequest".freeze
11
+ API_CANCEL_SUBSCRIPTION = "ARBCancelSubscriptionRequest".freeze
12
+ API_GET_SUBSCRIPTION_STATUS = "ARBGetSubscriptionStatusRequest".freeze
13
+ API_GET_SUBSCRIPTION_LIST = "ARBGetSubscriptionListRequest".freeze
14
+
15
+ API_GET_CUSTOMER_PROFILE_IDS = "getCustomerProfileIdsRequest".freeze
16
+
17
+ API_CREATE_CUSTOMER_PROFILE = "createCustomerProfileRequest".freeze
18
+ API_GET_CUSTOMER_PROFILE = "getCustomerProfileRequest".freeze
19
+ API_UPDATE_CUSTOMER_PROFILE = "updateCustomerProfileRequest".freeze
20
+ API_DELETE_CUSTOMER_PROFILE = "deleteCustomerProfileRequest".freeze
21
+
22
+ API_CREATE_CUSTOMER_PAYMENT_PROFILE = "createCustomerPaymentProfileRequest".freeze
23
+ API_GET_CUSTOMER_PAYMENT_PROFILE = "getCustomerPaymentProfileRequest".freeze
24
+ API_UPDATE_CUSTOMER_PAYMENT_PROFILE = "updateCustomerPaymentProfileRequest".freeze
25
+ API_VALIDATE_CUSTOMER_PAYMENT_PROFILE = "validateCustomerPaymentProfileRequest".freeze
26
+ API_DELETE_CUSTOMER_PAYMENT_PROFILE = "deleteCustomerPaymentProfileRequest".freeze
27
+
28
+ API_CREATE_CUSTOMER_SHIPPING_PROFILE = "createCustomerShippingAddressRequest".freeze
29
+ API_GET_CUSTOMER_SHIPPING_PROFILE = "getCustomerShippingAddressRequest".freeze
30
+ API_UPDATE_CUSTOMER_SHIPPING_PROFILE = "updateCustomerShippingAddressRequest".freeze
31
+ API_DELETE_CUSTOMER_SHIPPING_PROFILE = "deleteCustomerShippingAddressRequest".freeze
32
+
33
+ API_CREATE_CUSTOMER_PROFILE_FROM_TRANSACTION = "createCustomerProfileFromTransactionRequest".freeze
34
+
35
+ API_GET_SETTLED_BATCH_LIST = "getSettledBatchListRequest".freeze
36
+ API_GET_TRANSACTION_LIST = "getTransactionListRequest".freeze
37
+ API_GET_TRANSACTION_DETAILS = "getTransactionDetailsRequest".freeze
38
+ API_GET_UNSETTLED_TRANSACTION_LIST = "getUnsettledTransactionListRequest".freeze
39
+ API_GET_BATCH_STATISTICS = "getBatchStatisticsRequest".freeze
40
+ API_GET_TRANSACTION_LIST_FOR_CUSTOMER = "getTransactionListForCustomerRequest".freeze
41
+
42
+ API_GET_HOSTED_PROFILE_PAGE = "getHostedProfilePageRequest".freeze
43
+
44
+ API_DECRYPT_PAYMENT_DATA = "decryptPaymentDataRequest".freeze
45
+ API_AUTHENTICATE_TEST_REQUEST = "authenticateTestRequest".freeze
46
+
47
+ API_GET_CUSTOMER_PAYMENT_PROFILE_LIST = "getCustomerPaymentProfileListRequest".freeze
48
+
49
+ API_ARB_GET_SUBSCRIPTION_REQUEST = "ARBGetSubscriptionRequest".freeze
55
50
 
51
+ API_GET_MERCHANT_DETAILS = "getMerchantDetailsRequest".freeze
52
+ API_GET_HOSTED_PAYMENT_PAGE = "getHostedPaymentPageRequest".freeze
53
+ API_UDPATE_HELD_TRANSACTION = "updateHeldTransactionRequest".freeze
54
+ API_UPDATE_MERCHANT_DETAILS = "updateMerchantDetailsRequest".freeze
55
+ API_GET_CUSTOMER_PAYMENT_PROFILE_NONCE = "getCustomerPaymentProfileNonceRequest".freeze
56
+
56
57
  end
57
-
58
+
58
59
  def initialize(api_login_id = nil, api_transaction_key = nil, options = {})
59
- super
60
- end
61
-
62
- def setOAuthOptions()
63
- super
64
- end
65
-
66
- def make_request(request,responseClass,type)
67
- setOAuthOptions()
68
- unless responseClass.nil? or request.nil?
69
- begin
70
- @xml = serialize(request,type)
71
- respXml = send_request(@xml)
72
- @response = deserialize(respXml.body,responseClass)
73
- rescue Exception => ex
74
- ex
75
- end
76
- end
60
+ super
77
61
  end
62
+
63
+ def setOAuthOptions
64
+ super
65
+ end
78
66
 
79
- def serialize(object,type)
67
+ def make_request(request, responseClass, type)
68
+ setOAuthOptions
69
+ unless responseClass.nil? || request.nil?
70
+ begin
71
+ @xml = serialize(request, type)
72
+ LogHelper.log.debug(@xml)
73
+ respXml = send_request(@xml)
74
+ @response = deserialize(respXml.body, responseClass)
75
+ LogHelper.log.debug(respXml.body)
76
+ return @response
77
+ rescue Exception => ex
78
+ LogHelper.log.error(ex.message)
79
+ ex.backtrace.each {|line| LogHelper.log.error(line)}
80
+ ex
81
+ end
82
+ end
83
+ end
84
+
85
+ def serialize(object, type)
80
86
  doc = Nokogiri::XML::Document.new
81
87
  doc.root = object.to_xml
82
88
  constants = YAML.load_file(File.dirname(__FILE__) + "/constants.yml")
83
89
  clientId = constants['clientId']
84
90
 
85
- builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |x|
86
- x.send(type.to_sym, :xmlns => XML_NAMESPACE) {
87
- x.merchantAuthentication {
88
- if !@access_token.blank?
89
- x.accessToken @access_token
90
- end
91
- if !@api_login_id.blank? || (@access_token.blank? && @api_login_id.blank?)
92
- x.name @api_login_id
93
- x.transactionKey @api_transaction_key
94
- end
95
- }
91
+ builder = Nokogiri::XML::Builder.new(encoding: 'utf-8') do |x|
92
+ x.send(type.to_sym, xmlns: XML_NAMESPACE) do
93
+ x.merchantAuthentication do
94
+ x.accessToken @access_token unless @access_token.blank?
95
+ if !@api_login_id.blank? || (@access_token.blank? && @api_login_id.blank?)
96
+ x.name @api_login_id
97
+ x.transactionKey @api_transaction_key
98
+ end
99
+ end
96
100
  x.clientId clientId
97
- x.send:insert, doc.root.element_children
98
- }
101
+ x.send :insert, doc.root.element_children
102
+ end
99
103
  end
100
- builder.to_xml
104
+ builder.to_xml
101
105
  end
102
-
106
+
107
+
103
108
  def send_request(xml)
104
109
  url = URI.parse(@gateway)
105
110
 
@@ -113,11 +118,11 @@ module AuthorizeNet::API
113
118
  else
114
119
  connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
115
120
  end
116
-
117
- response = connection.start {|http| http.request(httpRequest)}
121
+
122
+ response = connection.start { |http| http.request(httpRequest) }
118
123
  end
119
-
120
- def deserialize(xml,responseClass)
124
+
125
+ def deserialize(xml, responseClass)
121
126
  responseClass.from_xml(xml)
122
127
  end
123
128
  end