activemerchant 1.86.0 → 1.87.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG +22 -0
- data/lib/active_merchant/billing/avs_result.rb +0 -1
- data/lib/active_merchant/billing/check.rb +1 -1
- data/lib/active_merchant/billing/compatibility.rb +3 -3
- data/lib/active_merchant/billing/credit_card.rb +1 -1
- data/lib/active_merchant/billing/credit_card_formatting.rb +3 -3
- data/lib/active_merchant/billing/credit_card_methods.rb +6 -4
- data/lib/active_merchant/billing/gateway.rb +9 -9
- data/lib/active_merchant/billing/gateways/adyen.rb +48 -7
- data/lib/active_merchant/billing/gateways/allied_wallet.rb +1 -1
- data/lib/active_merchant/billing/gateways/authorize_net.rb +8 -8
- data/lib/active_merchant/billing/gateways/authorize_net_arb.rb +1 -1
- data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +15 -15
- data/lib/active_merchant/billing/gateways/axcessms.rb +2 -2
- data/lib/active_merchant/billing/gateways/balanced.rb +11 -11
- data/lib/active_merchant/billing/gateways/bank_frick.rb +1 -1
- data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +5 -5
- data/lib/active_merchant/billing/gateways/beanstream.rb +3 -2
- data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +5 -5
- data/lib/active_merchant/billing/gateways/blue_pay.rb +5 -5
- data/lib/active_merchant/billing/gateways/blue_snap.rb +5 -5
- data/lib/active_merchant/billing/gateways/bogus.rb +3 -3
- data/lib/active_merchant/billing/gateways/borgun.rb +5 -6
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +18 -12
- data/lib/active_merchant/billing/gateways/bridge_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/cams.rb +12 -12
- data/lib/active_merchant/billing/gateways/card_stream.rb +9 -9
- data/lib/active_merchant/billing/gateways/cardknox.rb +4 -4
- data/lib/active_merchant/billing/gateways/cardprocess.rb +1 -1
- data/lib/active_merchant/billing/gateways/cashnet.rb +2 -2
- data/lib/active_merchant/billing/gateways/cc5.rb +2 -2
- data/lib/active_merchant/billing/gateways/cenpos.rb +2 -2
- data/lib/active_merchant/billing/gateways/checkout.rb +1 -1
- data/lib/active_merchant/billing/gateways/clearhaus.rb +12 -12
- data/lib/active_merchant/billing/gateways/commercegate.rb +3 -3
- data/lib/active_merchant/billing/gateways/creditcall.rb +2 -2
- data/lib/active_merchant/billing/gateways/credorax.rb +13 -3
- data/lib/active_merchant/billing/gateways/ct_payment.rb +6 -6
- data/lib/active_merchant/billing/gateways/culqi.rb +1 -1
- data/lib/active_merchant/billing/gateways/cyber_source.rb +8 -8
- data/lib/active_merchant/billing/gateways/data_cash.rb +2 -2
- data/lib/active_merchant/billing/gateways/dibs.rb +2 -2
- data/lib/active_merchant/billing/gateways/digitzs.rb +5 -5
- data/lib/active_merchant/billing/gateways/ebanx.rb +1 -1
- data/lib/active_merchant/billing/gateways/efsnet.rb +4 -4
- data/lib/active_merchant/billing/gateways/elavon.rb +3 -3
- data/lib/active_merchant/billing/gateways/element.rb +4 -4
- data/lib/active_merchant/billing/gateways/epay.rb +1 -1
- data/lib/active_merchant/billing/gateways/eway.rb +2 -2
- data/lib/active_merchant/billing/gateways/eway_managed.rb +5 -5
- data/lib/active_merchant/billing/gateways/eway_rapid.rb +1 -1
- data/lib/active_merchant/billing/gateways/exact.rb +1 -1
- data/lib/active_merchant/billing/gateways/federated_canada.rb +1 -1
- data/lib/active_merchant/billing/gateways/first_giving.rb +1 -1
- data/lib/active_merchant/billing/gateways/firstdata_e4.rb +7 -7
- data/lib/active_merchant/billing/gateways/flo2cash.rb +2 -2
- data/lib/active_merchant/billing/gateways/forte.rb +11 -7
- data/lib/active_merchant/billing/gateways/garanti.rb +5 -5
- data/lib/active_merchant/billing/gateways/global_collect.rb +2 -3
- data/lib/active_merchant/billing/gateways/hdfc.rb +2 -2
- data/lib/active_merchant/billing/gateways/hps.rb +3 -3
- data/lib/active_merchant/billing/gateways/inspire.rb +7 -7
- data/lib/active_merchant/billing/gateways/iridium.rb +14 -14
- data/lib/active_merchant/billing/gateways/itransact.rb +4 -4
- data/lib/active_merchant/billing/gateways/iveri.rb +3 -3
- data/lib/active_merchant/billing/gateways/jetpay.rb +2 -2
- data/lib/active_merchant/billing/gateways/jetpay_v2.rb +2 -2
- data/lib/active_merchant/billing/gateways/latitude19.rb +1 -1
- data/lib/active_merchant/billing/gateways/linkpoint.rb +3 -3
- data/lib/active_merchant/billing/gateways/litle.rb +2 -2
- data/lib/active_merchant/billing/gateways/maxipago.rb +1 -1
- data/lib/active_merchant/billing/gateways/mercado_pago.rb +7 -13
- data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +3 -3
- data/lib/active_merchant/billing/gateways/merchant_one.rb +4 -4
- data/lib/active_merchant/billing/gateways/merchant_partners.rb +1 -1
- data/lib/active_merchant/billing/gateways/merchant_warrior.rb +3 -3
- data/lib/active_merchant/billing/gateways/mercury.rb +2 -2
- data/lib/active_merchant/billing/gateways/metrics_global.rb +2 -2
- data/lib/active_merchant/billing/gateways/micropayment.rb +1 -1
- data/lib/active_merchant/billing/gateways/migs.rb +4 -6
- data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +2 -2
- data/lib/active_merchant/billing/gateways/moneris.rb +85 -56
- data/lib/active_merchant/billing/gateways/moneris_us.rb +9 -9
- data/lib/active_merchant/billing/gateways/money_movers.rb +1 -1
- data/lib/active_merchant/billing/gateways/mundipagg.rb +1 -1
- data/lib/active_merchant/billing/gateways/nab_transact.rb +1 -1
- data/lib/active_merchant/billing/gateways/net_registry.rb +2 -2
- data/lib/active_merchant/billing/gateways/netaxept.rb +6 -6
- data/lib/active_merchant/billing/gateways/netbanx.rb +36 -36
- data/lib/active_merchant/billing/gateways/netbilling.rb +2 -2
- data/lib/active_merchant/billing/gateways/netpay.rb +1 -1
- data/lib/active_merchant/billing/gateways/nmi.rb +2 -2
- data/lib/active_merchant/billing/gateways/ogone.rb +7 -7
- data/lib/active_merchant/billing/gateways/omise.rb +6 -6
- data/lib/active_merchant/billing/gateways/opp.rb +1 -1
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +5 -0
- data/lib/active_merchant/billing/gateways/orbital.rb +9 -7
- data/lib/active_merchant/billing/gateways/pac_net_raven.rb +6 -6
- data/lib/active_merchant/billing/gateways/pagarme.rb +1 -1
- data/lib/active_merchant/billing/gateways/pay_conex.rb +1 -1
- data/lib/active_merchant/billing/gateways/pay_gate_xml.rb +8 -5
- data/lib/active_merchant/billing/gateways/pay_hub.rb +2 -2
- data/lib/active_merchant/billing/gateways/pay_junction.rb +2 -2
- data/lib/active_merchant/billing/gateways/pay_junction_v2.rb +2 -2
- data/lib/active_merchant/billing/gateways/pay_secure.rb +3 -3
- data/lib/active_merchant/billing/gateways/paybox_direct.rb +8 -8
- data/lib/active_merchant/billing/gateways/payeezy.rb +1 -1
- data/lib/active_merchant/billing/gateways/payex.rb +8 -8
- data/lib/active_merchant/billing/gateways/payflow.rb +13 -13
- data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +4 -4
- data/lib/active_merchant/billing/gateways/payflow_express.rb +1 -1
- data/lib/active_merchant/billing/gateways/payment_express.rb +10 -10
- data/lib/active_merchant/billing/gateways/paymentez.rb +3 -0
- data/lib/active_merchant/billing/gateways/paymill.rb +4 -4
- data/lib/active_merchant/billing/gateways/payscout.rb +1 -1
- data/lib/active_merchant/billing/gateways/paystation.rb +1 -1
- data/lib/active_merchant/billing/gateways/payu_in.rb +3 -3
- data/lib/active_merchant/billing/gateways/payu_latam.rb +1 -1
- data/lib/active_merchant/billing/gateways/payway.rb +2 -2
- data/lib/active_merchant/billing/gateways/plugnpay.rb +2 -2
- data/lib/active_merchant/billing/gateways/pro_pay.rb +2 -2
- data/lib/active_merchant/billing/gateways/psigate.rb +1 -1
- data/lib/active_merchant/billing/gateways/psl_card.rb +3 -3
- data/lib/active_merchant/billing/gateways/qbms.rb +1 -1
- data/lib/active_merchant/billing/gateways/quantum.rb +7 -7
- data/lib/active_merchant/billing/gateways/quickbooks.rb +6 -6
- data/lib/active_merchant/billing/gateways/quickpay/quickpay_v10.rb +1 -1
- data/lib/active_merchant/billing/gateways/qvalent.rb +2 -2
- data/lib/active_merchant/billing/gateways/realex.rb +33 -13
- data/lib/active_merchant/billing/gateways/redsys.rb +2 -2
- data/lib/active_merchant/billing/gateways/safe_charge.rb +2 -2
- data/lib/active_merchant/billing/gateways/sage.rb +6 -6
- data/lib/active_merchant/billing/gateways/sage_pay.rb +7 -7
- data/lib/active_merchant/billing/gateways/secure_net.rb +1 -1
- data/lib/active_merchant/billing/gateways/secure_pay.rb +2 -2
- data/lib/active_merchant/billing/gateways/secure_pay_au.rb +1 -1
- data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +1 -1
- data/lib/active_merchant/billing/gateways/skip_jack.rb +5 -6
- data/lib/active_merchant/billing/gateways/smart_ps.rb +7 -7
- data/lib/active_merchant/billing/gateways/so_easy_pay.rb +1 -1
- data/lib/active_merchant/billing/gateways/stripe.rb +5 -5
- data/lib/active_merchant/billing/gateways/swipe_checkout.rb +2 -2
- data/lib/active_merchant/billing/gateways/telr.rb +1 -1
- data/lib/active_merchant/billing/gateways/trans_first_transaction_express.rb +2 -2
- data/lib/active_merchant/billing/gateways/transact_pro.rb +5 -5
- data/lib/active_merchant/billing/gateways/transax.rb +1 -1
- data/lib/active_merchant/billing/gateways/trust_commerce.rb +7 -7
- data/lib/active_merchant/billing/gateways/usa_epay_advanced.rb +17 -16
- data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +2 -2
- data/lib/active_merchant/billing/gateways/vanco.rb +2 -2
- data/lib/active_merchant/billing/gateways/verifi.rb +1 -1
- data/lib/active_merchant/billing/gateways/viaklix.rb +4 -4
- data/lib/active_merchant/billing/gateways/visanet_peru.rb +4 -4
- data/lib/active_merchant/billing/gateways/wirecard.rb +2 -2
- data/lib/active_merchant/billing/gateways/worldpay.rb +24 -13
- data/lib/active_merchant/billing/gateways/worldpay_online_payments.rb +2 -2
- data/lib/active_merchant/billing/response.rb +7 -7
- data/lib/active_merchant/country.rb +4 -4
- data/lib/active_merchant/network_connection_retries.rb +7 -9
- data/lib/active_merchant/version.rb +1 -1
- data/lib/support/gateway_support.rb +3 -3
- data/lib/support/ssl_verify.rb +1 -1
- metadata +3 -3
@@ -234,7 +234,7 @@ module ActiveMerchant #:nodoc:
|
|
234
234
|
def parse(body)
|
235
235
|
fields = {}
|
236
236
|
for line in body.split('&')
|
237
|
-
key, value = *line.scan(
|
237
|
+
key, value = *line.scan(%r{^(\w+)\=(.*)$}).flatten
|
238
238
|
fields[key] = CGI.unescape(value.to_s)
|
239
239
|
end
|
240
240
|
|
@@ -253,7 +253,7 @@ module ActiveMerchant #:nodoc:
|
|
253
253
|
:error_code => fields['UMerrorcode'],
|
254
254
|
:acs_url => fields['UMacsurl'],
|
255
255
|
:payload => fields['UMpayload']
|
256
|
-
}.delete_if{|k, v| v.nil?}
|
256
|
+
}.delete_if { |k, v| v.nil? }
|
257
257
|
end
|
258
258
|
|
259
259
|
def commit(action, parameters)
|
@@ -82,8 +82,8 @@ module ActiveMerchant
|
|
82
82
|
response[:error_message] = error['ErrorDescription']
|
83
83
|
response[:error_codes] = error['ErrorCode']
|
84
84
|
elsif error.kind_of?(Array)
|
85
|
-
error_str = error.map { |e| e['ErrorDescription']}.join('. ')
|
86
|
-
error_codes = error.map { |e| e['ErrorCode']}.join(', ')
|
85
|
+
error_str = error.map { |e| e['ErrorDescription'] }.join('. ')
|
86
|
+
error_codes = error.map { |e| e['ErrorCode'] }.join(', ')
|
87
87
|
response[:error_message] = "#{error_str}."
|
88
88
|
response[:error_codes] = error_codes
|
89
89
|
end
|
@@ -192,7 +192,7 @@ module ActiveMerchant #:nodoc:
|
|
192
192
|
def commit(trx_type, money, post)
|
193
193
|
post[:amount] = amount(money)
|
194
194
|
|
195
|
-
response = parse(
|
195
|
+
response = parse(ssl_post(self.live_url, post_data(trx_type, post)))
|
196
196
|
|
197
197
|
Response.new(response[:response].to_i == SUCCESS, message_from(response), response,
|
198
198
|
:test => test?,
|
@@ -73,12 +73,12 @@ module ActiveMerchant #:nodoc:
|
|
73
73
|
form[:customer_code] = options[:customer].to_s.slice(0, 10) unless options[:customer].blank?
|
74
74
|
end
|
75
75
|
|
76
|
-
def add_invoice(form,options)
|
76
|
+
def add_invoice(form, options)
|
77
77
|
form[:invoice_number] = (options[:order_id] || options[:invoice]).to_s.slice(0, 10)
|
78
78
|
form[:description] = options[:description].to_s.slice(0, 255)
|
79
79
|
end
|
80
80
|
|
81
|
-
def add_address(form,options)
|
81
|
+
def add_address(form, options)
|
82
82
|
billing_address = options[:billing_address] || options[:address]
|
83
83
|
|
84
84
|
if billing_address
|
@@ -138,7 +138,7 @@ module ActiveMerchant #:nodoc:
|
|
138
138
|
parameters[:amount] = amount(money)
|
139
139
|
parameters[:transaction_type] = self.actions[action]
|
140
140
|
|
141
|
-
response = parse(
|
141
|
+
response = parse(ssl_post(test? ? self.test_url : self.live_url, post_data(parameters)))
|
142
142
|
|
143
143
|
Response.new(response['result'] == APPROVED, message_from(response), response,
|
144
144
|
:test => @options[:test] || test?,
|
@@ -165,7 +165,7 @@ module ActiveMerchant #:nodoc:
|
|
165
165
|
# Parse the response message
|
166
166
|
def parse(msg)
|
167
167
|
resp = {}
|
168
|
-
msg.split(self.delimiter).collect{|li|
|
168
|
+
msg.split(self.delimiter).collect { |li|
|
169
169
|
key, value = li.split('=')
|
170
170
|
resp[key.strip.gsub(/^ssl_/, '')] = value.to_s.strip
|
171
171
|
}
|
@@ -82,7 +82,7 @@ module ActiveMerchant #:nodoc:
|
|
82
82
|
|
83
83
|
private
|
84
84
|
|
85
|
-
CURRENCY_CODES = Hash.new{|h,k| raise ArgumentError.new("Unsupported currency: #{k}")}
|
85
|
+
CURRENCY_CODES = Hash.new { |h, k| raise ArgumentError.new("Unsupported currency: #{k}") }
|
86
86
|
CURRENCY_CODES['USD'] = 840
|
87
87
|
CURRENCY_CODES['PEN'] = 604
|
88
88
|
|
@@ -166,9 +166,9 @@ module ActiveMerchant #:nodoc:
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def url(action, params, options={})
|
169
|
-
if
|
169
|
+
if action == 'authorize'
|
170
170
|
"#{base_url}/#{@options[:merchant_id]}"
|
171
|
-
elsif
|
171
|
+
elsif action == 'refund'
|
172
172
|
"#{base_url}/#{@options[:merchant_id]}/#{action}/#{options[:transaction_id]}"
|
173
173
|
else
|
174
174
|
"#{base_url}/#{@options[:merchant_id]}/#{action}/#{params[:purchaseNumber]}"
|
@@ -176,7 +176,7 @@ module ActiveMerchant #:nodoc:
|
|
176
176
|
end
|
177
177
|
|
178
178
|
def method(action)
|
179
|
-
|
179
|
+
%w(authorize refund).include?(action) ? :post : :put
|
180
180
|
end
|
181
181
|
|
182
182
|
def authorization_from(params, response, options)
|
@@ -140,7 +140,7 @@ module ActiveMerchant #:nodoc:
|
|
140
140
|
private
|
141
141
|
|
142
142
|
def clean_description(description)
|
143
|
-
description.to_s.slice(0,32).encode('US-ASCII', invalid: :replace, undef: :replace, replace: '?')
|
143
|
+
description.to_s.slice(0, 32).encode('US-ASCII', invalid: :replace, undef: :replace, replace: '?')
|
144
144
|
end
|
145
145
|
|
146
146
|
def prepare_options_hash(options)
|
@@ -343,7 +343,7 @@ module ActiveMerchant #:nodoc:
|
|
343
343
|
end
|
344
344
|
|
345
345
|
status.elements.to_a.each do |node|
|
346
|
-
if
|
346
|
+
if node.elements.size == 0
|
347
347
|
response[node.name.to_sym] = (node.text || '').strip
|
348
348
|
else
|
349
349
|
node.elements.each do |childnode|
|
@@ -30,8 +30,8 @@ module ActiveMerchant #:nodoc:
|
|
30
30
|
|
31
31
|
def purchase(money, payment_method, options = {})
|
32
32
|
MultiResponse.run do |r|
|
33
|
-
r.process{authorize(money, payment_method, options)}
|
34
|
-
r.process{capture(money, r.authorization, options.merge(:authorization_validated => true))}
|
33
|
+
r.process { authorize(money, payment_method, options) }
|
34
|
+
r.process { capture(money, r.authorization, options.merge(:authorization_validated => true)) }
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -42,19 +42,19 @@ module ActiveMerchant #:nodoc:
|
|
42
42
|
|
43
43
|
def capture(money, authorization, options = {})
|
44
44
|
MultiResponse.run do |r|
|
45
|
-
r.process{inquire_request(authorization, options, 'AUTHORISED')} unless options[:authorization_validated]
|
45
|
+
r.process { inquire_request(authorization, options, 'AUTHORISED') } unless options[:authorization_validated]
|
46
46
|
if r.params
|
47
47
|
authorization_currency = r.params['amount_currency_code']
|
48
48
|
options = options.merge(:currency => authorization_currency) if authorization_currency.present?
|
49
49
|
end
|
50
|
-
r.process{capture_request(money, authorization, options)}
|
50
|
+
r.process { capture_request(money, authorization, options) }
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
54
|
def void(authorization, options = {})
|
55
55
|
MultiResponse.run do |r|
|
56
|
-
r.process{inquire_request(authorization, options, 'AUTHORISED')} unless options[:authorization_validated]
|
57
|
-
r.process{cancel_request(authorization, options)}
|
56
|
+
r.process { inquire_request(authorization, options, 'AUTHORISED') } unless options[:authorization_validated]
|
57
|
+
r.process { cancel_request(authorization, options) }
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -67,7 +67,7 @@ module ActiveMerchant #:nodoc:
|
|
67
67
|
return response if response.success?
|
68
68
|
return response unless options[:force_full_refund_if_unsettled]
|
69
69
|
|
70
|
-
void(authorization, options
|
70
|
+
void(authorization, options) if response.params['last_event'] == 'AUTHORISED'
|
71
71
|
end
|
72
72
|
|
73
73
|
# Credits only function on a Merchant ID/login/profile flagged for Payouts
|
@@ -175,7 +175,7 @@ module ActiveMerchant #:nodoc:
|
|
175
175
|
end
|
176
176
|
|
177
177
|
def order_tag_attributes(options)
|
178
|
-
{ 'orderCode' => options[:order_id], 'installationId' => options[:inst_id] || @options[:inst_id] }.reject{|_,v| !v}
|
178
|
+
{ 'orderCode' => options[:order_id], 'installationId' => options[:inst_id] || @options[:inst_id] }.reject { |_, v| !v }
|
179
179
|
end
|
180
180
|
|
181
181
|
def build_capture_request(money, authorization, options)
|
@@ -212,7 +212,7 @@ module ActiveMerchant #:nodoc:
|
|
212
212
|
}
|
213
213
|
|
214
214
|
if options[:debit_credit_indicator]
|
215
|
-
amount_hash
|
215
|
+
amount_hash['debitCreditIndicator'] = options[:debit_credit_indicator]
|
216
216
|
end
|
217
217
|
|
218
218
|
xml.tag! 'amount', amount_hash
|
@@ -248,10 +248,21 @@ module ActiveMerchant #:nodoc:
|
|
248
248
|
xml.tag! 'session', 'shopperIPAddress' => options[:ip] if options[:ip]
|
249
249
|
xml.tag! 'session', 'id' => options[:session_id] if options[:session_id]
|
250
250
|
end
|
251
|
+
add_stored_credential_options(xml, options) if options[:stored_credential_usage]
|
251
252
|
end
|
252
253
|
end
|
253
254
|
end
|
254
255
|
|
256
|
+
def add_stored_credential_options(xml, options={})
|
257
|
+
if options[:stored_credential_initiated_reason]
|
258
|
+
xml.tag! 'storedCredentials', 'usage' => options[:stored_credential_usage], 'merchantInitiatedReason' => options[:stored_credential_initiated_reason] do
|
259
|
+
xml.tag! 'schemeTransactionIdentifier', options[:stored_credential_transaction_id] if options[:stored_credential_transaction_id]
|
260
|
+
end
|
261
|
+
else
|
262
|
+
xml.tag! 'storedCredentials', 'usage' => options[:stored_credential_usage]
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
255
266
|
def add_email(xml, options)
|
256
267
|
return unless options[:execute_threed] || options[:email]
|
257
268
|
xml.tag! 'shopper' do
|
@@ -326,7 +337,7 @@ module ActiveMerchant #:nodoc:
|
|
326
337
|
end
|
327
338
|
if node.has_elements?
|
328
339
|
raw[node.name.underscore.to_sym] = true unless node.name.blank?
|
329
|
-
node.elements.each{|e| parse_element(raw, e) }
|
340
|
+
node.elements.each { |e| parse_element(raw, e) }
|
330
341
|
else
|
331
342
|
raw[node.name.underscore.to_sym] = node.text unless node.text.nil?
|
332
343
|
end
|
@@ -339,7 +350,7 @@ module ActiveMerchant #:nodoc:
|
|
339
350
|
'Authorization' => encoded_credentials
|
340
351
|
}
|
341
352
|
if options[:cookie]
|
342
|
-
headers
|
353
|
+
headers['Set-Cookie'] = options[:cookie] if options[:cookie]
|
343
354
|
end
|
344
355
|
headers
|
345
356
|
end
|
@@ -407,12 +418,12 @@ module ActiveMerchant #:nodoc:
|
|
407
418
|
|
408
419
|
def required_status_message(raw, success_criteria)
|
409
420
|
if(!success_criteria.include?(raw[:last_event]))
|
410
|
-
"A transaction status of #{success_criteria.collect{|c| "'#{c}'"}.join(" or ")} is required."
|
421
|
+
"A transaction status of #{success_criteria.collect { |c| "'#{c}'" }.join(" or ")} is required."
|
411
422
|
end
|
412
423
|
end
|
413
424
|
|
414
425
|
def authorization_from(raw)
|
415
|
-
pair = raw.detect{|k,v| k.to_s =~ /_order_code$/}
|
426
|
+
pair = raw.detect { |k, v| k.to_s =~ /_order_code$/ }
|
416
427
|
(pair ? pair.last : nil)
|
417
428
|
end
|
418
429
|
|
@@ -139,7 +139,7 @@ module ActiveMerchant #:nodoc:
|
|
139
139
|
|
140
140
|
raw_response = ssl_request(method, self.live_url + url, json, headers(options))
|
141
141
|
|
142
|
-
if
|
142
|
+
if raw_response != ''
|
143
143
|
response = parse(raw_response)
|
144
144
|
if type == 'token'
|
145
145
|
success = response.key?('token')
|
@@ -163,7 +163,7 @@ module ActiveMerchant #:nodoc:
|
|
163
163
|
rescue ResponseError => e
|
164
164
|
raw_response = e.response.body
|
165
165
|
response = response_error(raw_response)
|
166
|
-
rescue JSON::ParserError
|
166
|
+
rescue JSON::ParserError
|
167
167
|
response = json_error(raw_response)
|
168
168
|
end
|
169
169
|
|
@@ -27,15 +27,15 @@ module ActiveMerchant #:nodoc:
|
|
27
27
|
@emv_authorization = options[:emv_authorization]
|
28
28
|
|
29
29
|
@avs_result = if options[:avs_result].kind_of?(AVSResult)
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
options[:avs_result].to_hash
|
31
|
+
else
|
32
|
+
AVSResult.new(options[:avs_result]).to_hash
|
33
33
|
end
|
34
34
|
|
35
35
|
@cvv_result = if options[:cvv_result].kind_of?(CVVResult)
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
options[:cvv_result].to_hash
|
37
|
+
else
|
38
|
+
CVVResult.new(options[:cvv_result]).to_hash
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
@@ -70,7 +70,7 @@ module ActiveMerchant #:nodoc:
|
|
70
70
|
|
71
71
|
def <<(response)
|
72
72
|
if response.is_a?(MultiResponse)
|
73
|
-
response.responses.each{|r| @responses << r}
|
73
|
+
response.responses.each { |r| @responses << r }
|
74
74
|
else
|
75
75
|
@responses << response
|
76
76
|
end
|
@@ -39,11 +39,11 @@ module ActiveMerchant #:nodoc:
|
|
39
39
|
|
40
40
|
def initialize(options = {})
|
41
41
|
@name = options.delete(:name)
|
42
|
-
@codes = options.collect{|k,v| CountryCode.new(v)}
|
42
|
+
@codes = options.collect { |k, v| CountryCode.new(v) }
|
43
43
|
end
|
44
44
|
|
45
45
|
def code(format)
|
46
|
-
@codes.detect{|c| c.format == format}
|
46
|
+
@codes.detect { |c| c.format == format }
|
47
47
|
end
|
48
48
|
|
49
49
|
def ==(other)
|
@@ -324,9 +324,9 @@ module ActiveMerchant #:nodoc:
|
|
324
324
|
when 2, 3
|
325
325
|
upcase_name = name.upcase
|
326
326
|
country_code = CountryCode.new(name)
|
327
|
-
country = COUNTRIES.detect{|c| c[country_code.format] == upcase_name }
|
327
|
+
country = COUNTRIES.detect { |c| c[country_code.format] == upcase_name }
|
328
328
|
else
|
329
|
-
country = COUNTRIES.detect{|c| c[:name].
|
329
|
+
country = COUNTRIES.detect { |c| c[:name].casecmp(name).zero? }
|
330
330
|
end
|
331
331
|
raise InvalidCountryCodeError, "No country could be found for the country #{name}" if country.nil?
|
332
332
|
Country.new(country.dup)
|
@@ -28,7 +28,7 @@ module ActiveMerchant
|
|
28
28
|
rescue OpenSSL::X509::CertificateError => e
|
29
29
|
NetworkConnectionRetries.log(options[:logger], :error, e.message, options[:tag])
|
30
30
|
raise ActiveMerchant::ClientCertificateError, 'The remote server did not accept the provided SSL certificate'
|
31
|
-
rescue Zlib::BufError
|
31
|
+
rescue Zlib::BufError
|
32
32
|
raise ActiveMerchant::InvalidResponseError, 'The remote server replied with an invalid response'
|
33
33
|
rescue *connection_errors.keys => e
|
34
34
|
raise ActiveMerchant::ConnectionError.new(derived_error_message(connection_errors, e.class), e)
|
@@ -36,6 +36,12 @@ module ActiveMerchant
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
def self.log(logger, level, message, tag=nil)
|
40
|
+
tag ||= self.class.to_s
|
41
|
+
message = "[#{tag}] #{message}"
|
42
|
+
logger&.send(level, message)
|
43
|
+
end
|
44
|
+
|
39
45
|
private
|
40
46
|
|
41
47
|
def retry_network_exceptions(options = {})
|
@@ -62,14 +68,6 @@ module ActiveMerchant
|
|
62
68
|
end
|
63
69
|
end
|
64
70
|
|
65
|
-
def self.log(logger, level, message, tag=nil)
|
66
|
-
tag ||= self.class.to_s
|
67
|
-
message = "[#{tag}] #{message}"
|
68
|
-
logger&.send(level, message)
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
|
73
71
|
def log_with_retry_details(logger, attempts, time, message, tag)
|
74
72
|
NetworkConnectionRetries.log(logger, :info, 'connection_attempt=%d connection_request_time=%.4fs connection_msg="%s"' % [attempts, time, message], tag)
|
75
73
|
end
|
@@ -14,7 +14,7 @@ class GatewaySupport #:nodoc:
|
|
14
14
|
filename = File.basename(f, '.rb')
|
15
15
|
gateway_name = filename + '_gateway'
|
16
16
|
begin
|
17
|
-
|
17
|
+
('ActiveMerchant::Billing::' + gateway_name.camelize).constantize
|
18
18
|
rescue NameError
|
19
19
|
puts 'Could not load gateway ' + gateway_name.camelize + ' from ' + f + '.'
|
20
20
|
end
|
@@ -24,14 +24,14 @@ class GatewaySupport #:nodoc:
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def each_gateway
|
27
|
-
@gateways.each{|g| yield g }
|
27
|
+
@gateways.each { |g| yield g }
|
28
28
|
end
|
29
29
|
|
30
30
|
def features
|
31
31
|
width = 15
|
32
32
|
|
33
33
|
print 'Name'.center(width + 20)
|
34
|
-
ACTIONS.each{|f| print f.to_s.capitalize.center(width) }
|
34
|
+
ACTIONS.each { |f| print f.to_s.capitalize.center(width) }
|
35
35
|
puts
|
36
36
|
|
37
37
|
each_gateway do |g|
|
data/lib/support/ssl_verify.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemerchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.87.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Luetke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -417,7 +417,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
417
417
|
version: '0'
|
418
418
|
requirements: []
|
419
419
|
rubyforge_project: activemerchant
|
420
|
-
rubygems_version: 2.6
|
420
|
+
rubygems_version: 2.7.6
|
421
421
|
signing_key:
|
422
422
|
specification_version: 4
|
423
423
|
summary: Framework and tools for dealing with credit card transactions.
|