activemerchant 1.82.0 → 1.83.0

Sign up to get free protection for your applications and to get access to all the features.
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