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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bde5a09cd6310799e9c99a524dee8794f7cd8b4
4
- data.tar.gz: 7e6b12456471b40677f716aadfd73a58059e9dc6
3
+ metadata.gz: 1bec7d7bb4488b4a853885b567cbe5533dce6e6f
4
+ data.tar.gz: 3b7150eafd6d15ef759badc91f2f36239564b2ff
5
5
  SHA512:
6
- metadata.gz: '059ecb8a37d8b7fc83efdf0a575a59c5c2d5ddc14da4d7d9610500f7c52400177dfe76cf88abfa4021bdd4f2fc8aa9564dc4b04ecb7072e9543da59589f6997e'
7
- data.tar.gz: e339a4da14fdc7a0c7d746946452aea9d512c0ce6b8bc5b294d5aff0b8c1cbabb40f495ec240a8d9a878ff65409b01e3bde20d3657efa189d32ff2b7563d3c18
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] || NETWORK_TOKENIZATION_CARD_SOURCE[payment.source.to_s] if payment.is_a?(NetworkTokenizationCreditCard)
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
- elsif credit_card_or_vault_id.source == :android_pay
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(100, credit_card, options) }
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
- final_response = Response.new(
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.ebanx.com/ws/'
5
- self.live_url = 'https://api.ebanx.com/ws/'
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 = 'Ebanx'
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
- post['order']['amountOfMoney'] = {
92
- 'amount' => amount(money),
93
- 'currencyCode' => options[:currency] || currency(money)
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?
@@ -1,3 +1,3 @@
1
1
  module ActiveMerchant
2
- VERSION = '1.82.0'
2
+ VERSION = '1.83.0'
3
3
  end
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.82.0
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-13 00:00:00.000000000 Z
11
+ date: 2018-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport