activemerchant 1.100.0 → 1.101.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +10 -0
- data/lib/active_merchant/billing/check.rb +2 -6
- data/lib/active_merchant/billing/credit_card.rb +1 -3
- data/lib/active_merchant/billing/gateway.rb +4 -7
- data/lib/active_merchant/billing/gateways/authorize_net.rb +3 -9
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +1 -3
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +4 -12
- data/lib/active_merchant/billing/gateways/axcessms.rb +1 -3
- data/lib/active_merchant/billing/gateways/balanced.rb +12 -11
- data/lib/active_merchant/billing/gateways/blue_pay.rb +2 -6
- data/lib/active_merchant/billing/gateways/blue_snap.rb +1 -3
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +7 -21
- data/lib/active_merchant/billing/gateways/cecabank.rb +1 -3
- data/lib/active_merchant/billing/gateways/checkout.rb +1 -3
- data/lib/active_merchant/billing/gateways/checkout_v2.rb +1 -3
- data/lib/active_merchant/billing/gateways/clearhaus.rb +9 -12
- data/lib/active_merchant/billing/gateways/credorax.rb +1 -1
- data/lib/active_merchant/billing/gateways/culqi.rb +6 -5
- data/lib/active_merchant/billing/gateways/cyber_source.rb +1 -0
- data/lib/active_merchant/billing/gateways/data_cash.rb +1 -3
- data/lib/active_merchant/billing/gateways/decidir.rb +1 -3
- data/lib/active_merchant/billing/gateways/ebanx.rb +1 -3
- data/lib/active_merchant/billing/gateways/elavon.rb +2 -6
- data/lib/active_merchant/billing/gateways/element.rb +1 -3
- data/lib/active_merchant/billing/gateways/eway_managed.rb +6 -5
- data/lib/active_merchant/billing/gateways/fat_zebra.rb +7 -6
- data/lib/active_merchant/billing/gateways/forte.rb +2 -6
- data/lib/active_merchant/billing/gateways/garanti.rb +1 -3
- data/lib/active_merchant/billing/gateways/global_collect.rb +1 -3
- data/lib/active_merchant/billing/gateways/hdfc.rb +1 -3
- data/lib/active_merchant/billing/gateways/hps.rb +6 -5
- data/lib/active_merchant/billing/gateways/inspire.rb +2 -6
- data/lib/active_merchant/billing/gateways/instapay.rb +1 -3
- data/lib/active_merchant/billing/gateways/iridium.rb +1 -3
- data/lib/active_merchant/billing/gateways/iveri.rb +7 -8
- data/lib/active_merchant/billing/gateways/jetpay.rb +3 -9
- data/lib/active_merchant/billing/gateways/jetpay_v2.rb +2 -6
- data/lib/active_merchant/billing/gateways/kushki.rb +7 -8
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +6 -5
- data/lib/active_merchant/billing/gateways/merchant_one.rb +1 -3
- data/lib/active_merchant/billing/gateways/merchant_ware.rb +1 -3
- data/lib/active_merchant/billing/gateways/merchant_warrior.rb +1 -3
- data/lib/active_merchant/billing/gateways/mercury.rb +2 -6
- data/lib/active_merchant/billing/gateways/metrics_global.rb +4 -12
- data/lib/active_merchant/billing/gateways/migs.rb +1 -3
- data/lib/active_merchant/billing/gateways/moneris.rb +1 -3
- data/lib/active_merchant/billing/gateways/moneris_us.rb +1 -3
- data/lib/active_merchant/billing/gateways/ncr_secure_pay.rb +1 -3
- data/lib/active_merchant/billing/gateways/netbanx.rb +24 -9
- data/lib/active_merchant/billing/gateways/netbilling.rb +1 -3
- data/lib/active_merchant/billing/gateways/network_merchants.rb +1 -3
- data/lib/active_merchant/billing/gateways/opp.rb +12 -13
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +1 -3
- data/lib/active_merchant/billing/gateways/orbital.rb +8 -11
- data/lib/active_merchant/billing/gateways/orbital/orbital_soft_descriptors.rb +1 -3
- data/lib/active_merchant/billing/gateways/pagarme.rb +4 -12
- data/lib/active_merchant/billing/gateways/pago_facil.rb +1 -3
- data/lib/active_merchant/billing/gateways/pay_conex.rb +1 -3
- data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +1 -3
- data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +6 -5
- data/lib/active_merchant/billing/gateways/payflow.rb +2 -6
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +1 -3
- data/lib/active_merchant/billing/gateways/paymentez.rb +1 -3
- data/lib/active_merchant/billing/gateways/paymill.rb +1 -3
- data/lib/active_merchant/billing/gateways/pro_pay.rb +1 -3
- data/lib/active_merchant/billing/gateways/quickbooks.rb +104 -31
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +2 -6
- data/lib/active_merchant/billing/gateways/realex.rb +1 -3
- data/lib/active_merchant/billing/gateways/redsys.rb +17 -27
- data/lib/active_merchant/billing/gateways/safe_charge.rb +1 -3
- data/lib/active_merchant/billing/gateways/sage_pay.rb +1 -3
- data/lib/active_merchant/billing/gateways/secure_net.rb +2 -6
- data/lib/active_merchant/billing/gateways/secure_pay.rb +4 -12
- data/lib/active_merchant/billing/gateways/smart_ps.rb +2 -6
- data/lib/active_merchant/billing/gateways/spreedly_core.rb +2 -6
- data/lib/active_merchant/billing/gateways/stripe.rb +3 -9
- data/lib/active_merchant/billing/gateways/telr.rb +2 -6
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +6 -5
- data/lib/active_merchant/billing/gateways/transact_pro.rb +1 -3
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +1 -3
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +4 -12
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +3 -9
- data/lib/active_merchant/billing/gateways/viaklix.rb +2 -6
- data/lib/active_merchant/billing/gateways/wepay.rb +2 -6
- data/lib/active_merchant/billing/gateways/wirecard.rb +2 -6
- data/lib/active_merchant/billing/gateways/worldpay.rb +5 -15
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +2 -6
- data/lib/active_merchant/version.rb +1 -1
- data/lib/support/ssl_verify.rb +1 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cadecd1cc8fe450e59061eac7cf2c2ce023513d1338858809fe828df46a1b745
|
4
|
+
data.tar.gz: cc7e81f49b5b4b0f17cbd73c921a7b73cbd4c8f468d70722dc844a4973191ffa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d3889d6325099cff6ffef0dc9de3259afac3ff6d86292cd5dfa9e85208e9eae671436222ec84e08ad1104e77ede4ab475519229f5121c61498f79adaf7da104
|
7
|
+
data.tar.gz: 3e0b7935750ab8d772d62d78d6c359187d287835e997076ba0a1d66a3586424e63897892a736cbf7b720aa7e04633112aca6fb4cad57a8bcbee2885f13701ea7
|
data/CHANGELOG
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
= ActiveMerchant CHANGELOG
|
2
2
|
|
3
3
|
== HEAD
|
4
|
+
== Version 1.101.0 (Nov 4, 2019)
|
5
|
+
* Add UYI to list of currencies without fractions [curiousepic] #3416
|
6
|
+
* Quickbooks: Add OAuth 2.0 support and void action [britth] #3397
|
7
|
+
* Credorax: Stop always sending r1 parameter [molbrown] #3415
|
8
|
+
* Rubocop: Layout/RescueEnsureAlignment fix [leila-alderman] #3411
|
9
|
+
* CyberSource: Send issuer data on capture [leila-alderman] #3404
|
10
|
+
* Rubocop: Style/IfUnlessModifier [nfarve] #3390
|
11
|
+
* Redsys: Updates to parse method for non-3DS responses [britth] #3391
|
12
|
+
* Netbanx: Add 3DS2 Support [Jujhar] #3394
|
13
|
+
|
4
14
|
== Version 1.100.0 (Oct 16, 2019)
|
5
15
|
* Stripe: Restore non-auto capture behaviour for card present transactions [PatrickFang] #3258
|
6
16
|
* Revert "Revert "Worldpay: Switch to Nokogiri"" [curiousepic] #3373
|
@@ -35,13 +35,9 @@ module ActiveMerchant #:nodoc:
|
|
35
35
|
|
36
36
|
errors << [:routing_number, 'is invalid'] unless valid_routing_number?
|
37
37
|
|
38
|
-
if
|
39
|
-
errors << [:account_holder_type, 'must be personal or business']
|
40
|
-
end
|
38
|
+
errors << [:account_holder_type, 'must be personal or business'] if !empty?(account_holder_type) && !%w[business personal].include?(account_holder_type.to_s)
|
41
39
|
|
42
|
-
if
|
43
|
-
errors << [:account_type, 'must be checking or savings']
|
44
|
-
end
|
40
|
+
errors << [:account_type, 'must be checking or savings'] if !empty?(account_type) && !%w[checking savings].include?(account_type.to_s)
|
45
41
|
|
46
42
|
errors_hash(errors)
|
47
43
|
end
|
@@ -367,9 +367,7 @@ module ActiveMerchant #:nodoc:
|
|
367
367
|
errors = []
|
368
368
|
|
369
369
|
if verification_value?
|
370
|
-
unless valid_card_verification_value?(verification_value, brand)
|
371
|
-
errors << [:verification_value, "should be #{card_verification_value_length(brand)} digits"]
|
372
|
-
end
|
370
|
+
errors << [:verification_value, "should be #{card_verification_value_length(brand)} digits"] unless valid_card_verification_value?(verification_value, brand)
|
373
371
|
elsif requires_verification_value? && !valid_card_verification_value?(verification_value, brand)
|
374
372
|
errors << [:verification_value, 'is required']
|
375
373
|
end
|
@@ -123,8 +123,9 @@ module ActiveMerchant #:nodoc:
|
|
123
123
|
class_attribute :supported_cardtypes
|
124
124
|
self.supported_cardtypes = []
|
125
125
|
|
126
|
+
# This default list of currencies without fractions are from https://en.wikipedia.org/wiki/ISO_4217
|
126
127
|
class_attribute :currencies_without_fractions, :currencies_with_three_decimal_places
|
127
|
-
self.currencies_without_fractions = %w(BIF BYR CLP CVE DJF GNF ISK JPY KMF KRW PYG RWF UGX VND VUV XAF XOF XPF)
|
128
|
+
self.currencies_without_fractions = %w(BIF BYR CLP CVE DJF GNF ISK JPY KMF KRW PYG RWF UGX UYI VND VUV XAF XOF XPF)
|
128
129
|
self.currencies_with_three_decimal_places = %w()
|
129
130
|
|
130
131
|
class_attribute :homepage_url
|
@@ -155,9 +156,7 @@ module ActiveMerchant #:nodoc:
|
|
155
156
|
|
156
157
|
def self.supported_countries=(country_codes)
|
157
158
|
country_codes.each do |country_code|
|
158
|
-
unless ActiveMerchant::Country.find(country_code)
|
159
|
-
raise ActiveMerchant::InvalidCountryCodeError, "No country could be found for the country #{country_code}"
|
160
|
-
end
|
159
|
+
raise ActiveMerchant::InvalidCountryCodeError, "No country could be found for the country #{country_code}" unless ActiveMerchant::Country.find(country_code)
|
161
160
|
end
|
162
161
|
@supported_countries = country_codes.dup
|
163
162
|
end
|
@@ -257,9 +256,7 @@ module ActiveMerchant #:nodoc:
|
|
257
256
|
money
|
258
257
|
end
|
259
258
|
|
260
|
-
if money.is_a?(String)
|
261
|
-
raise ArgumentError, 'money amount must be a positive Integer in cents.'
|
262
|
-
end
|
259
|
+
raise ArgumentError, 'money amount must be a positive Integer in cents.' if money.is_a?(String)
|
263
260
|
|
264
261
|
if self.money_format == :cents
|
265
262
|
cents.to_s
|
@@ -157,9 +157,7 @@ module ActiveMerchant
|
|
157
157
|
end
|
158
158
|
|
159
159
|
def credit(amount, payment, options={})
|
160
|
-
if payment.is_a?(String)
|
161
|
-
raise ArgumentError, 'Reference credits are not supported. Please supply the original credit card or use the #refund method.'
|
162
|
-
end
|
160
|
+
raise ArgumentError, 'Reference credits are not supported. Please supply the original credit card or use the #refund method.' if payment.is_a?(String)
|
163
161
|
|
164
162
|
commit(:credit) do |xml|
|
165
163
|
add_order_id(xml, options)
|
@@ -479,12 +477,8 @@ module ActiveMerchant
|
|
479
477
|
xml.creditCard do
|
480
478
|
xml.cardNumber(truncate(credit_card.number, 16))
|
481
479
|
xml.expirationDate(format(credit_card.month, :two_digits) + '/' + format(credit_card.year, :four_digits))
|
482
|
-
if credit_card.valid_card_verification_value?(credit_card.verification_value, credit_card.brand)
|
483
|
-
|
484
|
-
end
|
485
|
-
if credit_card.is_a?(NetworkTokenizationCreditCard) && action != :credit
|
486
|
-
xml.cryptogram(credit_card.payment_cryptogram)
|
487
|
-
end
|
480
|
+
xml.cardCode(credit_card.verification_value) if credit_card.valid_card_verification_value?(credit_card.verification_value, credit_card.brand)
|
481
|
+
xml.cryptogram(credit_card.payment_cryptogram) if credit_card.is_a?(NetworkTokenizationCreditCard) && action != :credit
|
488
482
|
end
|
489
483
|
end
|
490
484
|
end
|
@@ -147,9 +147,7 @@ module ActiveMerchant #:nodoc:
|
|
147
147
|
|
148
148
|
# Builds recurring billing request
|
149
149
|
def build_recurring_request(action, options = {})
|
150
|
-
unless RECURRING_ACTIONS.include?(action)
|
151
|
-
raise StandardError, "Invalid Automated Recurring Billing Action: #{action}"
|
152
|
-
end
|
150
|
+
raise StandardError, "Invalid Automated Recurring Billing Action: #{action}" unless RECURRING_ACTIONS.include?(action)
|
153
151
|
|
154
152
|
xml = Builder::XmlMarkup.new(:indent => 2)
|
155
153
|
xml.instruct!(:xml, :version => '1.0', :encoding => 'utf-8')
|
@@ -485,9 +485,7 @@ module ActiveMerchant #:nodoc:
|
|
485
485
|
end
|
486
486
|
|
487
487
|
def build_request(action, options = {})
|
488
|
-
unless CIM_ACTIONS.include?(action)
|
489
|
-
raise StandardError, "Invalid Customer Information Manager Action: #{action}"
|
490
|
-
end
|
488
|
+
raise StandardError, "Invalid Customer Information Manager Action: #{action}" unless CIM_ACTIONS.include?(action)
|
491
489
|
|
492
490
|
xml = Builder::XmlMarkup.new(:indent => 2)
|
493
491
|
xml.instruct!(:xml, :version => '1.0', :encoding => 'utf-8')
|
@@ -657,9 +655,7 @@ module ActiveMerchant #:nodoc:
|
|
657
655
|
end
|
658
656
|
|
659
657
|
def add_transaction(xml, transaction)
|
660
|
-
unless CIM_TRANSACTION_TYPES.include?(transaction[:type])
|
661
|
-
raise StandardError, "Invalid Customer Information Manager Transaction Type: #{transaction[:type]}"
|
662
|
-
end
|
658
|
+
raise StandardError, "Invalid Customer Information Manager Transaction Type: #{transaction[:type]}" unless CIM_TRANSACTION_TYPES.include?(transaction[:type])
|
663
659
|
|
664
660
|
xml.tag!('transaction') do
|
665
661
|
xml.tag!(CIM_TRANSACTION_TYPES[transaction[:type]]) do
|
@@ -698,9 +694,7 @@ module ActiveMerchant #:nodoc:
|
|
698
694
|
if [:auth_capture, :auth_only, :capture_only].include?(transaction[:type])
|
699
695
|
xml.tag!('recurringBilling', transaction[:recurring_billing]) if transaction.has_key?(:recurring_billing)
|
700
696
|
end
|
701
|
-
unless [:void, :refund, :prior_auth_capture].include?(transaction[:type])
|
702
|
-
tag_unless_blank(xml, 'cardCode', transaction[:card_code])
|
703
|
-
end
|
697
|
+
tag_unless_blank(xml, 'cardCode', transaction[:card_code]) unless [:void, :refund, :prior_auth_capture].include?(transaction[:type])
|
704
698
|
end
|
705
699
|
end
|
706
700
|
end
|
@@ -942,9 +936,7 @@ module ActiveMerchant #:nodoc:
|
|
942
936
|
xml = REXML::Document.new(xml)
|
943
937
|
root = REXML::XPath.first(xml, "//#{CIM_ACTIONS[action]}Response") ||
|
944
938
|
REXML::XPath.first(xml, '//ErrorResponse')
|
945
|
-
if root
|
946
|
-
response = parse_element(root)
|
947
|
-
end
|
939
|
+
response = parse_element(root) if root
|
948
940
|
|
949
941
|
response
|
950
942
|
end
|
@@ -93,9 +93,7 @@ module ActiveMerchant #:nodoc:
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def parse_element(response, node)
|
96
|
-
if node.has_attributes?
|
97
|
-
node.attributes.each { |name, value| response["#{node.name}_#{name}".underscore.to_sym] = value }
|
98
|
-
end
|
96
|
+
node.attributes.each { |name, value| response["#{node.name}_#{name}".underscore.to_sym] = value } if node.has_attributes?
|
99
97
|
|
100
98
|
if node.has_elements?
|
101
99
|
node.elements.each { |element| parse_element(response, element) }
|
@@ -155,17 +155,18 @@ module ActiveMerchant #:nodoc:
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def commit(entity_name, path, post, method=:post)
|
158
|
-
raw_response =
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
158
|
+
raw_response =
|
159
|
+
begin
|
160
|
+
parse(ssl_request(
|
161
|
+
method,
|
162
|
+
live_url + "/#{path}",
|
163
|
+
post_data(post),
|
164
|
+
headers
|
165
|
+
))
|
166
|
+
rescue ResponseError => e
|
167
|
+
raise unless(e.response.code.to_s =~ /4\d\d/)
|
168
|
+
parse(e.response.body)
|
169
|
+
end
|
169
170
|
|
170
171
|
Response.new(
|
171
172
|
success_from(entity_name, raw_response),
|
@@ -351,9 +351,7 @@ module ActiveMerchant #:nodoc:
|
|
351
351
|
# The bp20api has max one value per form field.
|
352
352
|
response_fields = Hash[CGI::parse(body).map { |k, v| [k.upcase, v.first] }]
|
353
353
|
|
354
|
-
if response_fields.include? 'REBILL_ID'
|
355
|
-
return parse_recurring(response_fields)
|
356
|
-
end
|
354
|
+
return parse_recurring(response_fields) if response_fields.include? 'REBILL_ID'
|
357
355
|
|
358
356
|
parsed = {}
|
359
357
|
response_fields.each do |k, v|
|
@@ -514,9 +512,7 @@ module ActiveMerchant #:nodoc:
|
|
514
512
|
end
|
515
513
|
|
516
514
|
def handle_response(response)
|
517
|
-
if ignore_http_status || (200...300).cover?(response.code.to_i)
|
518
|
-
return response.body
|
519
|
-
end
|
515
|
+
return response.body if ignore_http_status || (200...300).cover?(response.code.to_i)
|
520
516
|
raise ResponseError.new(response)
|
521
517
|
end
|
522
518
|
end
|
@@ -307,9 +307,7 @@ module ActiveMerchant
|
|
307
307
|
vaulted_shopper_id = payment_method_details.vaulted_shopper_id
|
308
308
|
doc.send('vaulted-shopper-id', vaulted_shopper_id) if vaulted_shopper_id
|
309
309
|
|
310
|
-
if payment_method_details.check?
|
311
|
-
add_echeck_transaction(doc, payment_method_details.payment_method, options, vaulted_shopper_id.present?)
|
312
|
-
end
|
310
|
+
add_echeck_transaction(doc, payment_method_details.payment_method, options, vaulted_shopper_id.present?) if payment_method_details.check?
|
313
311
|
|
314
312
|
add_fraud_info(doc, options)
|
315
313
|
add_description(doc, options)
|
@@ -6,9 +6,7 @@ rescue LoadError
|
|
6
6
|
raise 'Could not load the braintree gem. Use `gem install braintree` to install it.'
|
7
7
|
end
|
8
8
|
|
9
|
-
unless Braintree::Version::Major == 2 && Braintree::Version::Minor >= 78
|
10
|
-
raise "Need braintree gem >= 2.78.0. Run `gem install braintree --version '~>2.78'` to get the correct version."
|
11
|
-
end
|
9
|
+
raise "Need braintree gem >= 2.78.0. Run `gem install braintree --version '~>2.78'` to get the correct version." unless Braintree::Version::Major == 2 && Braintree::Version::Minor >= 78
|
12
10
|
|
13
11
|
module ActiveMerchant #:nodoc:
|
14
12
|
module Billing #:nodoc:
|
@@ -302,9 +300,7 @@ module ActiveMerchant #:nodoc:
|
|
302
300
|
valid_options[key] = value if [:update_existing_token, :verify_card, :verification_merchant_account_id].include?(key)
|
303
301
|
end
|
304
302
|
|
305
|
-
if valid_options.include?(:verify_card) && @merchant_account_id
|
306
|
-
valid_options[:verification_merchant_account_id] ||= @merchant_account_id
|
307
|
-
end
|
303
|
+
valid_options[:verification_merchant_account_id] ||= @merchant_account_id if valid_options.include?(:verify_card) && @merchant_account_id
|
308
304
|
|
309
305
|
parameters[:credit_card] ||= {}
|
310
306
|
parameters[:credit_card][:options] = valid_options
|
@@ -328,9 +324,7 @@ module ActiveMerchant #:nodoc:
|
|
328
324
|
mapped[:country_code_alpha2] = (address[:country] || address[:country_code_alpha2]) if address[:country] || address[:country_code_alpha2]
|
329
325
|
mapped[:country_name] = address[:country_name] if address[:country_name]
|
330
326
|
mapped[:country_code_alpha3] = address[:country_code_alpha3] if address[:country_code_alpha3]
|
331
|
-
unless address[:country].blank?
|
332
|
-
mapped[:country_code_alpha3] ||= Country.find(address[:country]).code(:alpha3).value
|
333
|
-
end
|
327
|
+
mapped[:country_code_alpha3] ||= Country.find(address[:country]).code(:alpha3).value unless address[:country].blank?
|
334
328
|
mapped[:country_code_numeric] = address[:country_code_numeric] if address[:country_code_numeric]
|
335
329
|
|
336
330
|
mapped
|
@@ -494,9 +488,7 @@ module ActiveMerchant #:nodoc:
|
|
494
488
|
end
|
495
489
|
|
496
490
|
def transaction_hash(result)
|
497
|
-
unless result.success?
|
498
|
-
return { 'processor_response_code' => response_code_from_result(result) }
|
499
|
-
end
|
491
|
+
return { 'processor_response_code' => response_code_from_result(result) } unless result.success?
|
500
492
|
|
501
493
|
transaction = result.transaction
|
502
494
|
if transaction.vault_customer
|
@@ -588,17 +580,11 @@ module ActiveMerchant #:nodoc:
|
|
588
580
|
}
|
589
581
|
}
|
590
582
|
|
591
|
-
if options[:skip_advanced_fraud_checking]
|
592
|
-
parameters[:options][:skip_advanced_fraud_checking] = options[:skip_advanced_fraud_checking]
|
593
|
-
end
|
583
|
+
parameters[:options][:skip_advanced_fraud_checking] = options[:skip_advanced_fraud_checking] if options[:skip_advanced_fraud_checking]
|
594
584
|
|
595
|
-
if options[:skip_avs]
|
596
|
-
parameters[:options][:skip_avs] = options[:skip_avs]
|
597
|
-
end
|
585
|
+
parameters[:options][:skip_avs] = options[:skip_avs] if options[:skip_avs]
|
598
586
|
|
599
|
-
if options[:skip_cvv]
|
600
|
-
parameters[:options][:skip_cvv] = options[:skip_cvv]
|
601
|
-
end
|
587
|
+
parameters[:options][:skip_cvv] = options[:skip_cvv] if options[:skip_cvv]
|
602
588
|
|
603
589
|
parameters[:custom_fields] = options[:custom_fields]
|
604
590
|
parameters[:device_data] = options[:device_data] if options[:device_data]
|
@@ -143,9 +143,7 @@ module ActiveMerchant #:nodoc:
|
|
143
143
|
response[:error_message] = root.elements['ERROR/descripcion'].text
|
144
144
|
else
|
145
145
|
if root.elements['OPERACION'].attributes['numeroOperacion'] == '000'
|
146
|
-
if
|
147
|
-
response[:authorization] = root.elements['OPERACION/numeroAutorizacion'].text
|
148
|
-
end
|
146
|
+
response[:authorization] = root.elements['OPERACION/numeroAutorizacion'].text if root.elements['OPERACION/numeroAutorizacion']
|
149
147
|
else
|
150
148
|
response[:authorization] = root.attributes['numeroOperacion']
|
151
149
|
end
|
@@ -107,9 +107,7 @@ module ActiveMerchant #:nodoc:
|
|
107
107
|
xml.bill_cc_ payment_method.number
|
108
108
|
xml.bill_expmonth_ format(payment_method.month, :two_digits)
|
109
109
|
xml.bill_expyear_ format(payment_method.year, :four_digits)
|
110
|
-
if payment_method.verification_value?
|
111
|
-
xml.bill_cvv2_ payment_method.verification_value
|
112
|
-
end
|
110
|
+
xml.bill_cvv2_ payment_method.verification_value if payment_method.verification_value?
|
113
111
|
end
|
114
112
|
|
115
113
|
def add_billing_info(xml, options)
|
@@ -152,9 +152,7 @@ module ActiveMerchant #:nodoc:
|
|
152
152
|
begin
|
153
153
|
raw_response = (action == :verify_payment ? ssl_get("#{base_url}/payments/#{post}", headers) : ssl_post(url(post, action, authorization), post.to_json, headers))
|
154
154
|
response = parse(raw_response)
|
155
|
-
if action == :capture && response.key?('_links')
|
156
|
-
response['id'] = response['_links']['payment']['href'].split('/')[-1]
|
157
|
-
end
|
155
|
+
response['id'] = response['_links']['payment']['href'].split('/')[-1] if action == :capture && response.key?('_links')
|
158
156
|
rescue ResponseError => e
|
159
157
|
raise unless e.response.code.to_s =~ /4\d\d/
|
160
158
|
response = parse(e.response.body)
|
@@ -130,9 +130,7 @@ module ActiveMerchant #:nodoc:
|
|
130
130
|
card[:expire_month] = '%02d'% payment.month
|
131
131
|
card[:expire_year] = payment.year
|
132
132
|
|
133
|
-
if payment.verification_value?
|
134
|
-
card[:csc] = payment.verification_value
|
135
|
-
end
|
133
|
+
card[:csc] = payment.verification_value if payment.verification_value?
|
136
134
|
|
137
135
|
post[:card] = card if card.any?
|
138
136
|
end
|
@@ -161,12 +159,13 @@ module ActiveMerchant #:nodoc:
|
|
161
159
|
end
|
162
160
|
end
|
163
161
|
|
164
|
-
response =
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
162
|
+
response =
|
163
|
+
begin
|
164
|
+
parse(ssl_post(url, body, headers))
|
165
|
+
rescue ResponseError => e
|
166
|
+
raise unless(e.response.code.to_s =~ /400/)
|
167
|
+
parse(e.response.body)
|
168
|
+
end
|
170
169
|
|
171
170
|
Response.new(
|
172
171
|
success_from(response),
|
@@ -211,9 +210,7 @@ module ActiveMerchant #:nodoc:
|
|
211
210
|
end
|
212
211
|
|
213
212
|
def error_code_from(response)
|
214
|
-
unless success_from(response)
|
215
|
-
response['status']['code']
|
216
|
-
end
|
213
|
+
response['status']['code'] unless success_from(response)
|
217
214
|
end
|
218
215
|
end
|
219
216
|
end
|
@@ -358,7 +358,7 @@ module ActiveMerchant #:nodoc:
|
|
358
358
|
end
|
359
359
|
|
360
360
|
def add_processor(post, options)
|
361
|
-
post[:r1] = options[:processor]
|
361
|
+
post[:r1] = options[:processor] if options[:processor]
|
362
362
|
post[:r2] = options[:processor_merchant_id] if options[:processor_merchant_id]
|
363
363
|
end
|
364
364
|
|
@@ -208,11 +208,12 @@ module ActiveMerchant #:nodoc:
|
|
208
208
|
}
|
209
209
|
|
210
210
|
def commit(action, params)
|
211
|
-
response =
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
211
|
+
response =
|
212
|
+
begin
|
213
|
+
parse(ssl_post(url + ACTIONS[action], post_data(action, params), headers))
|
214
|
+
rescue ResponseError => e
|
215
|
+
parse(e.response.body)
|
216
|
+
end
|
216
217
|
|
217
218
|
success = success_from(response)
|
218
219
|
|
@@ -290,6 +290,7 @@ module ActiveMerchant #:nodoc:
|
|
290
290
|
add_purchase_data(xml, money, true, options)
|
291
291
|
add_capture_service(xml, request_id, request_token)
|
292
292
|
add_business_rules_data(xml, authorization, options)
|
293
|
+
add_issuer_additional_data(xml, options)
|
293
294
|
xml.target!
|
294
295
|
end
|
295
296
|
|
@@ -123,9 +123,7 @@ module ActiveMerchant
|
|
123
123
|
add_authentication(xml)
|
124
124
|
|
125
125
|
xml.tag! :Transaction do
|
126
|
-
if options[:set_up_continuous_authority]
|
127
|
-
xml.tag! :ContAuthTxn, :type => 'setup'
|
128
|
-
end
|
126
|
+
xml.tag! :ContAuthTxn, :type => 'setup' if options[:set_up_continuous_authority]
|
129
127
|
xml.tag! :CardTxn do
|
130
128
|
xml.tag! :method, type
|
131
129
|
add_credit_card(xml, credit_card, options[:billing_address])
|
@@ -211,9 +211,7 @@ module ActiveMerchant #:nodoc:
|
|
211
211
|
if error = response.dig('status_details', 'error')
|
212
212
|
message = error.dig('reason', 'description')
|
213
213
|
elsif response['error_type']
|
214
|
-
if response['validation_errors']
|
215
|
-
message = response['validation_errors'].map { |errors| "#{errors['code']}: #{errors['param']}" }.join(', ')
|
216
|
-
end
|
214
|
+
message = response['validation_errors'].map { |errors| "#{errors['code']}: #{errors['param']}" }.join(', ') if response['validation_errors']
|
217
215
|
message ||= response['error_type']
|
218
216
|
end
|
219
217
|
|