activemerchant 1.77.0 → 1.78.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +49 -0
  3. data/lib/active_merchant/billing/gateways/adyen.rb +75 -29
  4. data/lib/active_merchant/billing/gateways/barclaycard_smartpay.rb +1 -1
  5. data/lib/active_merchant/billing/gateways/blue_snap.rb +3 -8
  6. data/lib/active_merchant/billing/gateways/card_stream.rb +22 -1
  7. data/lib/active_merchant/billing/gateways/cenpos.rb +1 -1
  8. data/lib/active_merchant/billing/gateways/checkout_v2.rb +8 -1
  9. data/lib/active_merchant/billing/gateways/citrus_pay.rb +0 -1
  10. data/lib/active_merchant/billing/gateways/dibs.rb +0 -1
  11. data/lib/active_merchant/billing/gateways/first_pay.rb +0 -1
  12. data/lib/active_merchant/billing/gateways/global_collect.rb +11 -5
  13. data/lib/active_merchant/billing/gateways/global_transport.rb +0 -1
  14. data/lib/active_merchant/billing/gateways/litle.rb +93 -17
  15. data/lib/active_merchant/billing/gateways/mercado_pago.rb +2 -2
  16. data/lib/active_merchant/billing/gateways/merchant_warrior.rb +4 -4
  17. data/lib/active_merchant/billing/gateways/migs.rb +12 -0
  18. data/lib/active_merchant/billing/gateways/netbilling.rb +0 -1
  19. data/lib/active_merchant/billing/gateways/ogone.rb +0 -1
  20. data/lib/active_merchant/billing/gateways/optimal_payment.rb +11 -0
  21. data/lib/active_merchant/billing/gateways/orbital.rb +5 -3
  22. data/lib/active_merchant/billing/gateways/payeezy.rb +14 -24
  23. data/lib/active_merchant/billing/gateways/payflow.rb +15 -1
  24. data/lib/active_merchant/billing/gateways/paymentez.rb +21 -11
  25. data/lib/active_merchant/billing/gateways/paystation.rb +4 -1
  26. data/lib/active_merchant/billing/gateways/payu_latam.rb +7 -7
  27. data/lib/active_merchant/billing/gateways/psigate.rb +1 -1
  28. data/lib/active_merchant/billing/gateways/redsys.rb +5 -0
  29. data/lib/active_merchant/billing/gateways/secure_net.rb +11 -1
  30. data/lib/active_merchant/billing/gateways/spreedly_core.rb +12 -1
  31. data/lib/active_merchant/billing/gateways/stripe.rb +17 -6
  32. data/lib/active_merchant/billing/gateways/tns.rb +0 -1
  33. data/lib/active_merchant/billing/gateways/usa_epay_transaction.rb +39 -21
  34. data/lib/active_merchant/billing/gateways/worldpay.rb +1 -1
  35. data/lib/active_merchant/billing/gateways/worldpay_us.rb +12 -0
  36. data/lib/active_merchant/version.rb +1 -1
  37. data/lib/certs/cacert.pem +25 -0
  38. metadata +2 -2
@@ -75,7 +75,6 @@ module ActiveMerchant #:nodoc:
75
75
  commit(post)
76
76
  end
77
77
 
78
-
79
78
  def refund(money, authorization, options={})
80
79
  post = new_request
81
80
  add_amount(post, money, options)
@@ -85,6 +84,10 @@ module ActiveMerchant #:nodoc:
85
84
  commit(post)
86
85
  end
87
86
 
87
+ def verify(credit_card, options={})
88
+ authorize(0, credit_card, options)
89
+ end
90
+
88
91
  private
89
92
 
90
93
  def new_request
@@ -48,7 +48,7 @@ module ActiveMerchant #:nodoc:
48
48
  def capture(amount, authorization, options={})
49
49
  post = {}
50
50
 
51
- add_credentials(post, 'SUBMIT_TRANSACTION')
51
+ add_credentials(post, 'SUBMIT_TRANSACTION', options)
52
52
  add_transaction_elements(post, 'CAPTURE', options)
53
53
  add_reference(post, authorization)
54
54
 
@@ -58,7 +58,7 @@ module ActiveMerchant #:nodoc:
58
58
  def void(authorization, options={})
59
59
  post = {}
60
60
 
61
- add_credentials(post, 'SUBMIT_TRANSACTION')
61
+ add_credentials(post, 'SUBMIT_TRANSACTION', options)
62
62
  add_transaction_elements(post, 'VOID', options)
63
63
  add_reference(post, authorization)
64
64
 
@@ -68,7 +68,7 @@ module ActiveMerchant #:nodoc:
68
68
  def refund(amount, authorization, options={})
69
69
  post = {}
70
70
 
71
- add_credentials(post, 'SUBMIT_TRANSACTION')
71
+ add_credentials(post, 'SUBMIT_TRANSACTION', options)
72
72
  add_transaction_elements(post, 'REFUND', options)
73
73
  add_reference(post, authorization)
74
74
 
@@ -115,7 +115,7 @@ module ActiveMerchant #:nodoc:
115
115
  private
116
116
 
117
117
  def auth_or_sale(post, transaction_type, amount, payment_method, options)
118
- add_credentials(post, 'SUBMIT_TRANSACTION')
118
+ add_credentials(post, 'SUBMIT_TRANSACTION', options)
119
119
  add_transaction_elements(post, transaction_type, options)
120
120
  add_order(post, options)
121
121
  add_buyer(post, payment_method, options)
@@ -126,9 +126,9 @@ module ActiveMerchant #:nodoc:
126
126
  add_extra_parameters(post, options)
127
127
  end
128
128
 
129
- def add_credentials(post, command)
129
+ def add_credentials(post, command, options={})
130
130
  post[:test] = test? unless command == 'CREATE_TOKEN'
131
- post[:language] = 'en'
131
+ post[:language] = options[:language] || 'en'
132
132
  post[:command] = command
133
133
  merchant = {}
134
134
  merchant[:apiLogin] = @options[:api_login]
@@ -153,7 +153,7 @@ module ActiveMerchant #:nodoc:
153
153
  order[:partnerId] = options[:partner_id] if options[:partner_id]
154
154
  order[:referenceCode] = options[:order_id] || generate_unique_id
155
155
  order[:description] = options[:description] || 'Compra en ' + @options[:merchant_id]
156
- order[:language] = 'en'
156
+ order[:language] = options[:language] || 'en'
157
157
  order[:shippingAddress] = shipping_address_fields(options) if options[:shipping_address]
158
158
  post[:transaction][:order] = order
159
159
  end
@@ -35,7 +35,7 @@ module ActiveMerchant #:nodoc:
35
35
  # :email => 'jack@yahoo.com'
36
36
  # )
37
37
  class PsigateGateway < Gateway
38
- self.test_url = 'https://dev.psigate.com:7989/Messenger/XMLMessenger'
38
+ self.test_url = 'https://staging.psigate.com:17989/Messenger/XMLMessenger'
39
39
  self.live_url = 'https://secure.psigate.com:17934/Messenger/XMLMessenger'
40
40
 
41
41
  self.supported_cardtypes = [:visa, :master, :american_express]
@@ -56,6 +56,7 @@ module ActiveMerchant #:nodoc:
56
56
  "CAD" => '124',
57
57
  "CHF" => '756',
58
58
  "CLP" => '152',
59
+ "CNY" => '156',
59
60
  "COP" => '170',
60
61
  "CRC" => '188',
61
62
  "CZK" => '203',
@@ -65,7 +66,10 @@ module ActiveMerchant #:nodoc:
65
66
  "GBP" => '826',
66
67
  "GTQ" => '320',
67
68
  "HUF" => '348',
69
+ "IDR" => '360',
70
+ "INR" => '356',
68
71
  "JPY" => '392',
72
+ "KRW" => '410',
69
73
  "MYR" => '458',
70
74
  "MXN" => '484',
71
75
  "NOK" => '578',
@@ -77,6 +81,7 @@ module ActiveMerchant #:nodoc:
77
81
  "SEK" => '752',
78
82
  "SGD" => '702',
79
83
  "THB" => '764',
84
+ "TWD" => '901',
80
85
  "USD" => '840',
81
86
  "UYU" => '858'
82
87
  }
@@ -61,8 +61,19 @@ module ActiveMerchant #:nodoc:
61
61
  refund(money, authorization, options)
62
62
  end
63
63
 
64
+ def supports_scrubbing?
65
+ true
66
+ end
67
+
68
+ def scrub(transcript)
69
+ transcript.
70
+ gsub(%r((<CARDNUMBER>)\d+(</CARDNUMBER>))i, '\1[FILTERED]\2').
71
+ gsub(%r((<CARDCODE>)\d+(</CARDCODE>))i, '\1[FILTERED]\2').
72
+ gsub(%r((<SECUREKEY>).+(</SECUREKEY>))i, '\1[FILTERED]\2')
73
+ end
64
74
 
65
75
  private
76
+
66
77
  def commit(request)
67
78
  xml = build_request(request)
68
79
  url = test? ? self.test_url : self.live_url
@@ -255,4 +266,3 @@ module ActiveMerchant #:nodoc:
255
266
  end
256
267
  end
257
268
  end
258
-
@@ -106,6 +106,18 @@ module ActiveMerchant #:nodoc:
106
106
  commit("payment_methods/#{authorization}/redact.xml", '', :put)
107
107
  end
108
108
 
109
+ def supports_scrubbing?
110
+ true
111
+ end
112
+
113
+ def scrub(transcript)
114
+ transcript.
115
+ gsub(%r((Authorization: Basic )\w+), '\1[FILTERED]').
116
+ gsub(%r((<number>).+(</number>)), '\1[FILTERED]\2').
117
+ gsub(%r((<verification_value>).+(</verification_value>)), '\1[FILTERED]\2').
118
+ gsub(%r((<payment_method_token>).+(</payment_method_token>)), '\1[FILTERED]\2')
119
+ end
120
+
109
121
  private
110
122
 
111
123
  def save_card(retain, credit_card, options)
@@ -244,4 +256,3 @@ module ActiveMerchant #:nodoc:
244
256
  end
245
257
  end
246
258
  end
247
-
@@ -43,7 +43,8 @@ module ActiveMerchant #:nodoc:
43
43
  'call_issuer' => STANDARD_ERROR_CODE[:call_issuer],
44
44
  'processing_error' => STANDARD_ERROR_CODE[:processing_error],
45
45
  'incorrect_pin' => STANDARD_ERROR_CODE[:incorrect_pin],
46
- 'test_mode_live_card' => STANDARD_ERROR_CODE[:test_mode_live_card]
46
+ 'test_mode_live_card' => STANDARD_ERROR_CODE[:test_mode_live_card],
47
+ 'pickup_card' => STANDARD_ERROR_CODE[:pickup_card]
47
48
  }
48
49
 
49
50
  BANK_ACCOUNT_HOLDER_TYPE_MAPPING = {
@@ -127,6 +128,7 @@ module ActiveMerchant #:nodoc:
127
128
  else
128
129
  add_application_fee(post, options)
129
130
  add_amount(post, money, options)
131
+ add_exchange_rate(post, options)
130
132
  commit(:post, "charges/#{CGI.escape(authorization)}/capture", post, options)
131
133
  end
132
134
  end
@@ -149,10 +151,10 @@ module ActiveMerchant #:nodoc:
149
151
  MultiResponse.run(:first) do |r|
150
152
  r.process { commit(:post, "charges/#{CGI.escape(identification)}/refunds", post, options) }
151
153
 
152
- return r unless options[:refund_fee_amount]
153
-
154
- r.process { fetch_application_fee(identification, options) }
155
- r.process { refund_application_fee(options[:refund_fee_amount], application_fee_from_response(r.responses.last), options) }
154
+ if options[:refund_fee_amount] && options[:refund_fee_amount].to_s != '0'
155
+ r.process { fetch_application_fee(identification, options) }
156
+ r.process { refund_application_fee(options[:refund_fee_amount].to_i, application_fee_from_response(r.responses.last), options) }
157
+ end
156
158
  end
157
159
  end
158
160
 
@@ -319,6 +321,7 @@ module ActiveMerchant #:nodoc:
319
321
 
320
322
  add_metadata(post, options)
321
323
  add_application_fee(post, options)
324
+ add_exchange_rate(post, options)
322
325
  add_destination(post, options)
323
326
  post
324
327
  end
@@ -333,8 +336,16 @@ module ActiveMerchant #:nodoc:
333
336
  post[:application_fee] = options[:application_fee] if options[:application_fee]
334
337
  end
335
338
 
339
+ def add_exchange_rate(post, options)
340
+ post[:exchange_rate] = options[:exchange_rate] if options[:exchange_rate]
341
+ end
342
+
336
343
  def add_destination(post, options)
337
- post[:destination] = options[:destination] if options[:destination]
344
+ if options[:destination]
345
+ post[:destination] = {}
346
+ post[:destination][:account] = options[:destination]
347
+ post[:destination][:amount] = options[:destination_amount] if options[:destination_amount]
348
+ end
338
349
  end
339
350
 
340
351
  def add_expand_parameters(post, options)
@@ -16,7 +16,6 @@ module ActiveMerchant
16
16
  self.supported_countries = %w(AR AU BR FR DE HK MX NZ SG GB US)
17
17
  self.default_currency = 'USD'
18
18
  self.supported_cardtypes = [:visa, :master, :american_express, :discover, :diners_club, :jcb, :maestro, :laser]
19
- self.ssl_version = :TLSv1
20
19
 
21
20
  end
22
21
  end
@@ -16,7 +16,8 @@ module ActiveMerchant #:nodoc:
16
16
  :capture => 'cc:capture',
17
17
  :refund => 'cc:refund',
18
18
  :void => 'cc:void',
19
- :void_release => 'cc:void:release'
19
+ :void_release => 'cc:void:release',
20
+ :check_purchase => 'check:sale'
20
21
  }
21
22
 
22
23
  STANDARD_ERROR_CODE_MAPPING = {
@@ -48,7 +49,7 @@ module ActiveMerchant #:nodoc:
48
49
 
49
50
  add_amount(post, money)
50
51
  add_invoice(post, options)
51
- add_credit_card(post, credit_card)
52
+ add_payment(post, credit_card)
52
53
  unless credit_card.track_data.present?
53
54
  add_address(post, credit_card, options)
54
55
  add_customer_data(post, options)
@@ -59,20 +60,20 @@ module ActiveMerchant #:nodoc:
59
60
  commit(:authorization, post)
60
61
  end
61
62
 
62
- def purchase(money, credit_card, options = {})
63
+ def purchase(money, payment, options = {})
63
64
  post = {}
64
65
 
65
66
  add_amount(post, money)
66
67
  add_invoice(post, options)
67
- add_credit_card(post, credit_card)
68
- unless credit_card.track_data.present?
69
- add_address(post, credit_card, options)
68
+ add_payment(post, payment)
69
+ unless payment.respond_to?(:track_data) && payment.track_data.present?
70
+ add_address(post, payment, options)
70
71
  add_customer_data(post, options)
71
72
  end
72
73
  add_split_payments(post, options)
73
74
  add_test_mode(post, options)
74
75
 
75
- commit(:purchase, post)
76
+ payment.respond_to?(:routing_number) ? commit(:check_purchase, post) : commit(:purchase, post)
76
77
  end
77
78
 
78
79
  def capture(money, authorization, options = {})
@@ -106,6 +107,19 @@ module ActiveMerchant #:nodoc:
106
107
  commit(command, post)
107
108
  end
108
109
 
110
+ def supports_scrubbing?
111
+ true
112
+ end
113
+
114
+ def scrub(transcript)
115
+ transcript.
116
+ gsub(%r((&?UMcard=)\d*(&?))i, '\1[FILTERED]\2').
117
+ gsub(%r((&?UMcvv2=)\d*(&?))i, '\1[FILTERED]\2').
118
+ gsub(%r((&?UMmagstripe=)[^&]*)i, '\1[FILTERED]\2').
119
+ gsub(%r((&?UMaccount=)[^&]*)i, '\1[FILTERED]').
120
+ gsub(%r((&?UMkey=)[^&]*)i, '\1[FILTERED]')
121
+ end
122
+
109
123
  private
110
124
 
111
125
  def add_amount(post, money)
@@ -138,19 +152,19 @@ module ActiveMerchant #:nodoc:
138
152
  end
139
153
  end
140
154
 
141
- def add_address(post, credit_card, options)
155
+ def add_address(post, payment, options)
142
156
  billing_address = options[:billing_address] || options[:address]
143
157
 
144
- add_address_for_type(:billing, post, credit_card, billing_address) if billing_address
145
- add_address_for_type(:shipping, post, credit_card, options[:shipping_address]) if options[:shipping_address]
158
+ add_address_for_type(:billing, post, payment, billing_address) if billing_address
159
+ add_address_for_type(:shipping, post, payment, options[:shipping_address]) if options[:shipping_address]
146
160
  end
147
161
 
148
- def add_address_for_type(type, post, credit_card, address)
162
+ def add_address_for_type(type, post, payment, address)
149
163
  prefix = address_key_prefix(type)
150
164
  first_name, last_name = split_names(address[:name])
151
165
 
152
- post[address_key(prefix, 'fname')] = first_name.blank? && last_name.blank? ? credit_card.first_name : first_name
153
- post[address_key(prefix, 'lname')] = first_name.blank? && last_name.blank? ? credit_card.last_name : last_name
166
+ post[address_key(prefix, 'fname')] = first_name.blank? && last_name.blank? ? payment.first_name : first_name
167
+ post[address_key(prefix, 'lname')] = first_name.blank? && last_name.blank? ? payment.last_name : last_name
154
168
  post[address_key(prefix, 'company')] = address[:company] unless address[:company].blank?
155
169
  post[address_key(prefix, 'street')] = address[:address1] unless address[:address1].blank?
156
170
  post[address_key(prefix, 'street2')] = address[:address2] unless address[:address2].blank?
@@ -177,16 +191,20 @@ module ActiveMerchant #:nodoc:
177
191
  post[:description] = options[:description]
178
192
  end
179
193
 
180
- def add_credit_card(post, credit_card)
181
- if credit_card.track_data.present?
182
- post[:magstripe] = credit_card.track_data
194
+ def add_payment(post, payment)
195
+ if payment.respond_to?(:routing_number)
196
+ post[:account] = payment.account_number
197
+ post[:routing] = payment.routing_number
198
+ post[:name] = payment.name unless payment.name.blank?
199
+ elsif payment.respond_to?(:track_data) && payment.track_data.present?
200
+ post[:magstripe] = payment.track_data
183
201
  post[:cardpresent] = true
184
202
  else
185
- post[:card] = credit_card.number
186
- post[:cvv2] = credit_card.verification_value if credit_card.verification_value?
187
- post[:expir] = expdate(credit_card)
188
- post[:name] = credit_card.name unless credit_card.name.blank?
189
- post[:cardpresent] = true if credit_card.manual_entry
203
+ post[:card] = payment.number
204
+ post[:cvv2] = payment.verification_value if payment.verification_value?
205
+ post[:expir] = expdate(payment)
206
+ post[:name] = payment.name unless payment.name.blank?
207
+ post[:cardpresent] = true if payment.manual_entry
190
208
  end
191
209
  end
192
210
 
@@ -6,7 +6,7 @@ module ActiveMerchant #:nodoc:
6
6
 
7
7
  self.default_currency = 'GBP'
8
8
  self.money_format = :cents
9
- self.supported_countries = %w(HK GB AU AD BE CH CY CZ DE DK ES FI FR GI GR HU IE IL IT LI LU MC MT NL NO NZ PL PT SE SG SI SM TR UM VA)
9
+ self.supported_countries = %w(HK GB AU AD BE CH CY CZ DE DK ES FI FR GI GR HU IE IT LI LU MC MT NL NO NZ PL PT SE SG SI SM TR UM VA)
10
10
  self.supported_cardtypes = [:visa, :master, :american_express, :discover, :jcb, :maestro, :laser, :switch]
11
11
  self.currencies_without_fractions = %w(HUF IDR ISK JPY KRW)
12
12
  self.currencies_with_three_decimal_places = %w(BHD KWD OMR RSD TND)
@@ -72,6 +72,18 @@ module ActiveMerchant #:nodoc:
72
72
  end
73
73
  end
74
74
 
75
+ def supports_scrubbing?
76
+ true
77
+ end
78
+
79
+ def scrub(transcript)
80
+ transcript.
81
+ gsub(%r((&?merchantpin=)[^&]*)i, '\1[FILTERED]').
82
+ gsub(%r((&?ccnum=)[^&]*)i, '\1[FILTERED]').
83
+ gsub(%r((&?ckacct=)[^&]*)i, '\1[FILTERED]').
84
+ gsub(%r((&?cvv2=)[^&]*)i, '\1[FILTERED]')
85
+ end
86
+
75
87
  private
76
88
 
77
89
  def url(options)
@@ -1,3 +1,3 @@
1
1
  module ActiveMerchant
2
- VERSION = "1.77.0"
2
+ VERSION = "1.78.0"
3
3
  end
@@ -1454,6 +1454,31 @@ UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
1454
1454
  CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
1455
1455
  -----END CERTIFICATE-----
1456
1456
 
1457
+ DigiCert Global Root G2
1458
+ =======================
1459
+ -----BEGIN CERTIFICATE-----
1460
+ MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
1461
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
1462
+ d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
1463
+ MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
1464
+ MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
1465
+ b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
1466
+ 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
1467
+ 2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
1468
+ 1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
1469
+ q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
1470
+ tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
1471
+ vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
1472
+ BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
1473
+ 5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
1474
+ 1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
1475
+ NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
1476
+ Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
1477
+ 8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
1478
+ pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
1479
+ MrY=
1480
+ -----END CERTIFICATE-----
1481
+
1457
1482
  DigiCert High Assurance EV Root CA
1458
1483
  ==================================
1459
1484
  -----BEGIN CERTIFICATE-----
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.77.0
4
+ version: 1.78.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-01-31 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport