activemerchant 1.82.0 → 1.83.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG +15 -0
- data/lib/active_merchant/billing/gateways/adyen.rb +6 -1
- data/lib/active_merchant/billing/gateways/braintree_blue.rb +1 -1
- data/lib/active_merchant/billing/gateways/clearhaus.rb +1 -1
- data/lib/active_merchant/billing/gateways/ct_payment.rb +3 -2
- data/lib/active_merchant/billing/gateways/ebanx.rb +4 -4
- data/lib/active_merchant/billing/gateways/first_pay.rb +11 -0
- data/lib/active_merchant/billing/gateways/global_collect.rb +9 -8
- data/lib/active_merchant/billing/gateways/optimal_payment.rb +3 -1
- data/lib/active_merchant/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bec7d7bb4488b4a853885b567cbe5533dce6e6f
|
4
|
+
data.tar.gz: 3b7150eafd6d15ef759badc91f2f36239564b2ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dd7a5f0297f25668644ffc21512f28da4a5a8745f94c01892888ac06fe932ea023e7c0cb248c015322aade52304dce13f50f2cb22b885eeff7352bc973c1e86
|
7
|
+
data.tar.gz: 7b8157e7de8ca025be5d412663b7af949f312c981d23a890b638ba6afb2b858dccab8b4a6c4f2c7725709613558a5507323ab9aefc77e8af9ab270688e6d5b72
|
data/CHANGELOG
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
= ActiveMerchant CHANGELOG
|
2
2
|
|
3
3
|
== HEAD
|
4
|
+
|
5
|
+
== Version 1.83.0 (August 30, 2018)
|
6
|
+
* CT Payment: Update How Address is Passed [nfarve] #2960
|
7
|
+
* Adyen: Add RecurringProcessingModel [nfarve] #2951
|
8
|
+
* Optimal Payments: update country list [bpollack] #2961
|
9
|
+
* Ebanx: update sandbox and production URLs [vnbrs] #2949
|
10
|
+
* Ebanx: support additional countries [vnbrs] #2950
|
11
|
+
* Gateway generator: fix a typo that would cause the script to crash [bpollack] #2962
|
12
|
+
* Clearhaus: use $0 for verify transactions [bpollack] #2964
|
13
|
+
* Global Collect: properly handle partial captures [bpollack] #2967
|
14
|
+
* Braintree: Add support for GooglePay [dtykocki] [#2966]
|
15
|
+
* Adyen: allow overriding card brands [bpollack] #2968
|
16
|
+
* Adyen: allow custom routing [bpollack] #2969
|
17
|
+
* First Pay: Adds scrubbing [deedeelavinder] #2972
|
18
|
+
|
4
19
|
== Version 1.82.0 (August 13, 2018)
|
5
20
|
* FirstData: add support for WalletProviderID in v27 gateway [bpollack] #2946
|
6
21
|
* BlueSnap: Handle 403 responses [curiousepic] #2948
|
@@ -114,9 +114,13 @@ module ActiveMerchant #:nodoc:
|
|
114
114
|
post[:shopperIP] = options[:shopper_ip] if options[:shopper_ip]
|
115
115
|
post[:shopperReference] = options[:shopper_reference] if options[:shopper_reference]
|
116
116
|
post[:fraudOffset] = options[:fraud_offset] if options[:fraud_offset]
|
117
|
-
post[:selectedBrand] = options[:selected_brand]
|
117
|
+
post[:selectedBrand] = options[:selected_brand] if options[:selected_brand]
|
118
|
+
post[:selectedBrand] ||= NETWORK_TOKENIZATION_CARD_SOURCE[payment.source.to_s] if payment.is_a?(NetworkTokenizationCreditCard)
|
118
119
|
post[:deliveryDate] = options[:delivery_date] if options[:delivery_date]
|
119
120
|
post[:merchantOrderReference] = options[:merchant_order_reference] if options[:merchant_order_reference]
|
121
|
+
post[:additionalData] ||= {}
|
122
|
+
post[:additionalData][:overwriteBrand] = normalize(options[:overwrite_brand]) if options[:overwrite_brand]
|
123
|
+
post[:additionalData][:customRoutingFlag] = options[:custom_routing_flag] if options[:custom_routing_flag]
|
120
124
|
end
|
121
125
|
|
122
126
|
def add_shopper_interaction(post, payment, options={})
|
@@ -148,6 +152,7 @@ module ActiveMerchant #:nodoc:
|
|
148
152
|
currency: options[:currency] || currency(money)
|
149
153
|
}
|
150
154
|
post[:amount] = amount
|
155
|
+
post[:recurringProcessingModel] = options[:recurring_processing_model] if options[:recurring_processing_model]
|
151
156
|
end
|
152
157
|
|
153
158
|
def add_invoice_for_modification(post, money, options)
|
@@ -598,7 +598,7 @@ module ActiveMerchant #:nodoc:
|
|
598
598
|
:cryptogram => credit_card_or_vault_id.payment_cryptogram,
|
599
599
|
:eci_indicator => credit_card_or_vault_id.eci
|
600
600
|
}
|
601
|
-
|
601
|
+
elsif credit_card_or_vault_id.source == :android_pay || credit_card_or_vault_id.source == :google_pay
|
602
602
|
parameters[:android_pay_card] = {
|
603
603
|
:number => credit_card_or_vault_id.number,
|
604
604
|
:cryptogram => credit_card_or_vault_id.payment_cryptogram,
|
@@ -88,7 +88,7 @@ module ActiveMerchant #:nodoc:
|
|
88
88
|
|
89
89
|
def verify(credit_card, options={})
|
90
90
|
MultiResponse.run(:use_first_response) do |r|
|
91
|
-
r.process { authorize(
|
91
|
+
r.process { authorize(0, credit_card, options) }
|
92
92
|
r.process(:ignore_result) { void(r.authorization, options) }
|
93
93
|
end
|
94
94
|
end
|
@@ -120,6 +120,7 @@ module ActiveMerchant #:nodoc:
|
|
120
120
|
add_operator_id(post, options)
|
121
121
|
add_invoice(post,0, options)
|
122
122
|
add_payment(post, credit_card)
|
123
|
+
add_address(post, credit_card, options)
|
123
124
|
add_customer_data(post, options)
|
124
125
|
|
125
126
|
commit('verifyAccount', post)
|
@@ -171,7 +172,7 @@ module ActiveMerchant #:nodoc:
|
|
171
172
|
|
172
173
|
def add_address(post, creditcard, options)
|
173
174
|
if address = options[:billing_address] || options[:address]
|
174
|
-
post[:CardHolderAddress] = ("#{address[:address1]} #{address[:address2]}").rjust(20, ' ')
|
175
|
+
post[:CardHolderAddress] = ("#{address[:address1]} #{address[:address2]} #{address[:city]} #{address[:state]}").rjust(20, ' ')
|
175
176
|
post[:CardHolderPostalCode] = address[:zip].gsub(/\s+/, '').rjust(9, ' ')
|
176
177
|
end
|
177
178
|
end
|
@@ -206,7 +207,7 @@ module ActiveMerchant #:nodoc:
|
|
206
207
|
url = (test? ? test_url : live_url) + action
|
207
208
|
response = parse(ssl_post(url, post_data(action, parameters)))
|
208
209
|
|
209
|
-
|
210
|
+
Response.new(
|
210
211
|
success_from(response),
|
211
212
|
message_from(response),
|
212
213
|
response,
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module ActiveMerchant #:nodoc:
|
2
2
|
module Billing #:nodoc:
|
3
3
|
class EbanxGateway < Gateway
|
4
|
-
self.test_url = 'https://sandbox.
|
5
|
-
self.live_url = 'https://api.
|
4
|
+
self.test_url = 'https://sandbox.ebanxpay.com/ws/'
|
5
|
+
self.live_url = 'https://api.ebanxpay.com/ws/'
|
6
6
|
|
7
|
-
self.supported_countries = ['BR', 'MX', 'CO']
|
7
|
+
self.supported_countries = ['BR', 'MX', 'CO', 'CL', 'AR']
|
8
8
|
self.default_currency = 'USD'
|
9
9
|
self.supported_cardtypes = [:visa, :master, :american_express, :discover, :diners_club]
|
10
10
|
|
11
11
|
self.homepage_url = 'http://www.ebanx.com/'
|
12
|
-
self.display_name = '
|
12
|
+
self.display_name = 'EBANX'
|
13
13
|
|
14
14
|
CARD_BRAND = {
|
15
15
|
visa: 'visa',
|
@@ -56,6 +56,17 @@ module ActiveMerchant #:nodoc:
|
|
56
56
|
commit('void', post)
|
57
57
|
end
|
58
58
|
|
59
|
+
def supports_scrubbing?
|
60
|
+
true
|
61
|
+
end
|
62
|
+
|
63
|
+
def scrub(transcript)
|
64
|
+
transcript.
|
65
|
+
gsub(%r((gateway_id)[^<]*(</FIELD>))i, '\1[FILTERED]\2').
|
66
|
+
gsub(%r((card_number)[^<]*(</FIELD>))i, '\1[FILTERED]\2').
|
67
|
+
gsub(%r((cvv2)[^<]*(</FIELD>))i, '\1[FILTERED]\2')
|
68
|
+
end
|
69
|
+
|
59
70
|
private
|
60
71
|
|
61
72
|
def add_authentication(post, options)
|
@@ -4,8 +4,8 @@ module ActiveMerchant #:nodoc:
|
|
4
4
|
self.display_name = 'GlobalCollect'
|
5
5
|
self.homepage_url = 'http://www.globalcollect.com/'
|
6
6
|
|
7
|
-
self.test_url = 'https://eu.sandbox.api-ingenico.com
|
8
|
-
self.live_url = 'https://api.globalcollect.com
|
7
|
+
self.test_url = 'https://eu.sandbox.api-ingenico.com'
|
8
|
+
self.live_url = 'https://api.globalcollect.com'
|
9
9
|
|
10
10
|
self.supported_countries = ['AD', 'AE', 'AG', 'AI', 'AL', 'AM', 'AO', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IS', 'IT', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PL', 'PN', 'PS', 'PT', 'PW', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SR', 'ST', 'SV', 'SZ', 'TC', 'TD', 'TG', 'TH', 'TJ', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'US', 'UY', 'UZ', 'VC', 'VE', 'VG', 'VI', 'VN', 'WF', 'WS', 'ZA', 'ZM', 'ZW']
|
11
11
|
self.default_currency = 'USD'
|
@@ -38,7 +38,7 @@ module ActiveMerchant #:nodoc:
|
|
38
38
|
|
39
39
|
def capture(money, authorization, options={})
|
40
40
|
post = nestable_hash
|
41
|
-
add_order(post, money, options)
|
41
|
+
add_order(post, money, options, capture: true)
|
42
42
|
add_customer_data(post, options)
|
43
43
|
add_creator_info(post, options)
|
44
44
|
commit(:capture, post, authorization)
|
@@ -87,11 +87,12 @@ module ActiveMerchant #:nodoc:
|
|
87
87
|
'diners_club' => '132'
|
88
88
|
}
|
89
89
|
|
90
|
-
def add_order(post, money, options)
|
91
|
-
|
92
|
-
'amount'
|
93
|
-
|
94
|
-
|
90
|
+
def add_order(post, money, options, capture: false)
|
91
|
+
if capture
|
92
|
+
post['amount'] = amount(money)
|
93
|
+
else
|
94
|
+
add_amount(post['order'], money, options)
|
95
|
+
end
|
95
96
|
post['order']['references'] = {
|
96
97
|
'merchantReference' => options[:order_id],
|
97
98
|
'descriptor' => options[:description] # Max 256 chars
|
@@ -5,7 +5,9 @@ module ActiveMerchant #:nodoc:
|
|
5
5
|
self.live_url = 'https://webservices.optimalpayments.com/creditcardWS/CreditCardServlet/v1'
|
6
6
|
|
7
7
|
# The countries the gateway supports merchants from as 2 digit ISO country codes
|
8
|
-
self.supported_countries = ['CA', 'US', 'GB'
|
8
|
+
self.supported_countries = ['CA', 'US', 'GB', 'AU', 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK',
|
9
|
+
'EE', 'FI', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT',
|
10
|
+
'NL', 'NO', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'CH']
|
9
11
|
|
10
12
|
# The card types supported by the payment gateway
|
11
13
|
self.supported_cardtypes = [:visa, :master, :american_express, :discover, :diners_club, :solo] # :switch?
|
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.83.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-08-
|
11
|
+
date: 2018-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|