swiss-activemerchant 1.0.6 → 1.0.7

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
  SHA256:
3
- metadata.gz: f495363874a0b5f387167751e3f3bd1345f848f7f538b9ceb3baeccf79253371
4
- data.tar.gz: fc8e643ef10042f872e82fe4c81244b14a46718b402a4ee8395dc50ae981cac2
3
+ metadata.gz: 34abdcccc7dd765c1985f3e60bdcdc537d2d9b63a0250a6f378d11cda6b25405
4
+ data.tar.gz: df3d015816886fd14ab83ca447ea017023f7120e5935b37786983df3556d6e74
5
5
  SHA512:
6
- metadata.gz: 42272dc8b47779ef0708f35c27ae00539be287cfb72e7d987ed76db684a1767200a7e516fda0c813d488a8e467c88ffe65c5a7b7b8e8c35cf807915c0b4feb82
7
- data.tar.gz: 2e7138c1098b2112be1b9876aa834ee6a20a019a2bd489780b33b4a9b0a12be8a1e456ee5447035a67945f131e4423740370ef6870a7f65a3bc5a6265fb5dee2
6
+ metadata.gz: 89dfb3bf5286b79a450977b8bf6a5954cffbc251bdd94a641f99799f2327a03f4baa5a9634b8717c9cf1c4389a66f7ad473b7ecaab5c6c3b833a9500825b3291
7
+ data.tar.gz: b2b44a3dc9b5c15142eea6a653aae9a5a97c6f6e692ac987a1aafa2c6d53d7250388f9cd15862db47cc9bb7172d909dc662d52d1f16f6dd0ef7363f3a471b98a
@@ -7,6 +7,9 @@ module ActiveMerchant #:nodoc:
7
7
  # particularly useful if you already have code interacting with
8
8
  # ActiveMerchant and want to easily take advantage of Spreedly's vault.
9
9
  class SpreedlyCoreGateway < Gateway
10
+ SUCCESS_CODE = 200
11
+ SOFT_DECLINE_CODES = [401, 402, 408, 415, 422].freeze
12
+
10
13
  self.live_url = 'https://core.spreedly.com/v1'
11
14
 
12
15
  self.supported_countries = %w(AD AE AT AU BD BE BG BN CA CH CY CZ DE DK EE EG ES FI FR GB
@@ -99,7 +102,7 @@ module ActiveMerchant #:nodoc:
99
102
  # credit_card - The CreditCard to store
100
103
  # options - A standard ActiveMerchant options hash
101
104
  def store(credit_card, options = {})
102
- retain = (options.has_key?(:retain) ? options[:retain] : true)
105
+ retain = true
103
106
  save_card(retain, credit_card, options)
104
107
  end
105
108
 
@@ -281,21 +284,26 @@ module ActiveMerchant #:nodoc:
281
284
 
282
285
  def commit(relative_url, request, method = :post, authorization_field = :token)
283
286
  begin
284
- raw_response = ssl_request(method, "#{live_url}/#{relative_url}", request, headers)
287
+ raw_response = ssl_request(method, request_url(relative_url), request, headers)
285
288
  rescue ResponseError => e
286
289
  raw_response = e.response.body
287
290
  end
288
291
 
289
- response_from(raw_response, authorization_field)
292
+ response_from(raw_response, authorization_field, request, relative_url)
290
293
  end
291
294
 
292
- def response_from(raw_response, authorization_field)
295
+ def response_from(raw_response, authorization_field, request_body, relative_url)
293
296
  parsed = parse(raw_response)
294
297
  options = {
295
298
  authorization: parsed[authorization_field],
296
299
  test: (parsed[:on_test_gateway] == 'true'),
297
300
  avs_result: { code: parsed[:response_avs_code] },
298
- cvv_result: parsed[:response_cvv_code]
301
+ cvv_result: parsed[:response_cvv_code],
302
+ response_type: response_type(@response_http_code.to_i),
303
+ response_http_code: @response_http_code,
304
+ request_endpoint: request_url(relative_url),
305
+ request_method: :post,
306
+ request_body:
299
307
  }
300
308
 
301
309
  Response.new(parsed[:succeeded] == 'true', parsed[:message] || parsed[:error], parsed, options)
@@ -307,6 +315,30 @@ module ActiveMerchant #:nodoc:
307
315
  'Content-Type' => 'text/xml'
308
316
  }
309
317
  end
318
+
319
+ def request_url(relative_url)
320
+ "#{live_url}/#{relative_url}"
321
+ end
322
+
323
+ def handle_response(response)
324
+ @response_http_code = response.code.to_i
325
+ case @response_http_code
326
+ when 200...300
327
+ response.body
328
+ else
329
+ raise ResponseError.new(response)
330
+ end
331
+ end
332
+
333
+ def response_type(code)
334
+ if code == SUCCESS_CODE
335
+ 0
336
+ elsif SOFT_DECLINE_CODES.include?(code)
337
+ 1
338
+ else
339
+ 2
340
+ end
341
+ end
310
342
  end
311
343
  end
312
344
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveMerchant
2
- VERSION = '1.0.6'
2
+ VERSION = '1.0.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swiss-activemerchant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Luetke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-26 00:00:00.000000000 Z
11
+ date: 2024-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport