active_merchant-epsilon 0.14.0 → 0.16.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
  SHA256:
3
- metadata.gz: 8fe0b19a8605e29e5c3a2a310e3b9684767a21fb2f93957342ffd41b9135657e
4
- data.tar.gz: b8eb1a2b4d150c0696d26a52e58f5069a60542739bc6461d61f864ad20a470db
3
+ metadata.gz: 810d49880d7598676c702f65469fd1b701f67d44d35d9e42e880458bd5fa6fa2
4
+ data.tar.gz: d8eacea3a048ec4f854268456a29a56acf5efe0e547dfe554adb4db0627a338c
5
5
  SHA512:
6
- metadata.gz: 87d7533d96fd6591a2b4ffeb78c7cfe2de4ad987e41c58be72083672f346178be6fa593e3aad6a5f3b66b0dde708e883d6d82a8c864a05006589d33a2978b41c
7
- data.tar.gz: '0782a6f4c48fcc0e905a7b72205d5511bea0ffa95ca285dceee5058d97ae0d63e25fc2e2b009910b800c398b2cb07451cb525f8d0ee1f58696228c487f2f4106'
6
+ metadata.gz: cce905e0138f828f8d8f9db2a1f53a6228b90a4077665a462b89ad31eed9fed7bc9d897cace7653554c5bea9e6be03d4c831f66cbc840cae3fca228911f7784f
7
+ data.tar.gz: acd2051e4733141ab426271d7a26421b42eb961cc0cf8257373ef66d9c6547b9d3c2e45115281033ea681efa1783ca886554ca3a201dbfe2c66147897314f70f
@@ -0,0 +1,41 @@
1
+ name: Publish gem to rubygems.org
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ push:
13
+ if: github.repository == 'pepabo/active_merchant-epsilon'
14
+ runs-on: ubuntu-latest
15
+
16
+ environment:
17
+ name: rubygems.org
18
+ url: https://rubygems.org/gems/active_merchant-epsilon
19
+
20
+ permissions:
21
+ contents: write
22
+ id-token: write
23
+
24
+ steps:
25
+ # Set up
26
+ - name: Harden Runner
27
+ uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
28
+ with:
29
+ egress-policy: audit
30
+
31
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
32
+
33
+ - name: Set up Ruby
34
+ uses: ruby/setup-ruby@fb404b9557c186e349162b0d8efb06e2bc36edea # v1.232.0
35
+ with:
36
+ bundler-cache: true
37
+ ruby-version: ruby
38
+
39
+ # Release
40
+ - name: Publish to RubyGems
41
+ uses: rubygems/release-gem@9e85cb11501bebc2ae661c1500176316d3987059 # v1
@@ -11,12 +11,12 @@ jobs:
11
11
  strategy:
12
12
  fail-fast: false
13
13
  matrix:
14
- ruby-version: [2.4, 2.5, 2.6, 2.7, 3.0]
14
+ ruby-version: ['3.1', '3.2', '3.3', '3.4']
15
15
 
16
16
  steps:
17
17
  - uses: actions/checkout@v2
18
18
 
19
- - uses: ruby/setup-ruby@v1.63.0
19
+ - uses: ruby/setup-ruby@v1
20
20
  with:
21
21
  ruby-version: ${{ matrix.ruby-version }}
22
22
  bundler-cache: true
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ### 0.16.0
4
+
5
+ - [Add `sales_limit_exceeded_flag` to `find_order` response](https://github.com/pepabo/active_merchant-epsilon/pull/133)
6
+
7
+ ### 0.15.0
8
+
9
+ - [Support 3D Secure parameters for link type payments](https://github.com/pepabo/active_merchant-epsilon/pull/131)
10
+
3
11
  ### 0.14.0
4
12
 
5
13
  - [Support 3D Secure 2.0 for credit card payments](https://github.com/pepabo/active_merchant-epsilon/pull/121)
data/README.md CHANGED
@@ -127,8 +127,8 @@ end
127
127
  # AND SECOND REQUEST
128
128
 
129
129
  response = gateway.authenticate(
130
- order_number: 'ORDER NUMBER',
131
- three_d_secure_pares: 'PAYMENT AUTHENTICATION RESPONSE',
130
+ order_number: 'ORDER NUMBER',
131
+ three_d_secure_pa_res: 'PAYMENT AUTHENTICATION RESPONSE',
132
132
  )
133
133
 
134
134
  if response.success?
@@ -199,8 +199,8 @@ end
199
199
  # AND SECOND REQUEST
200
200
 
201
201
  response = gateway.authenticate(
202
- order_number: 'ORDER NUMBER',
203
- three_d_secure_pares: 'PAYMENT AUTHENTICATION RESPONSE',
202
+ order_number: 'ORDER NUMBER',
203
+ three_d_secure_pa_res: 'PAYMENT AUTHENTICATION RESPONSE',
204
204
  )
205
205
 
206
206
  if response.success?
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency 'bundler'
25
25
  spec.add_development_dependency 'dotenv'
26
+ spec.add_development_dependency 'minitest-mock'
26
27
  spec.add_development_dependency 'pry-byebug'
27
28
  spec.add_development_dependency 'rake'
28
29
  spec.add_development_dependency 'tapp'
@@ -0,0 +1,25 @@
1
+ module ActiveMerchant #:nodoc:
2
+ module Billing #:nodoc:
3
+ module EpsilonRiskBaseAuthParams
4
+ KEYS = %i[
5
+ tds_flag billAddrCity billAddrCountry billAddrLine1 billAddrLine2 billAddrLine3
6
+ billAddrPostCode billAddrState shipAddrCity shipAddrCountry shipAddrLine1 shipAddrLine2
7
+ shipAddrLine3 shipAddrPostCode shipAddrState chAccAgeInd chAccChange
8
+ chAccChangeIndchAccDate chAccPwdChange chAccPwChangeInd nbPurchaseAccount paymentAccAge
9
+ paymentAccInd provisionAttemptsDay shipAddressUsage shipAddressUsageInd shipNameIndicator
10
+ suspiciousAccActivity txnActivityDay txnActivityYear threeDSReqAuthData threeDSReqAuthMethod
11
+ threeDSReqAuthTimestamp addrMatch cardholderName homePhone mobilePhone
12
+ workPhone challengeInd deliveryEmailAddress deliveryTimeframe giftCardAmount
13
+ giftCardCount preOrderDate preOrderPurchaseInd reorderItemsInd shipIndicator
14
+ ].freeze
15
+
16
+ THREE_D_SECURE_2_INDICATORS = [21, 22].freeze
17
+
18
+ def three_d_secure_2?(tds_flag)
19
+ THREE_D_SECURE_2_INDICATORS.include?(tds_flag)
20
+ end
21
+
22
+ module_function :three_d_secure_2?
23
+ end
24
+ end
25
+ end
@@ -22,20 +22,6 @@ module ActiveMerchant #:nodoc:
22
22
  capture: 'sales_payment.cgi',
23
23
  }.freeze
24
24
 
25
- RISK_BASE_AUTH_PARAMS_KEYS = %i[
26
- tds_flag billAddrCity billAddrCountry billAddrLine1 billAddrLine2 billAddrLine3
27
- billAddrPostCode billAddrState shipAddrCity shipAddrCountry shipAddrLine1 shipAddrLine2
28
- shipAddrLine3 shipAddrPostCode shipAddrState chAccAgeInd chAccChange
29
- chAccChangeIndchAccDate chAccPwdChange chAccPwChangeInd nbPurchaseAccount paymentAccAge
30
- paymentAccInd provisionAttemptsDay shipAddressUsage shipAddressUsageInd shipNameIndicator
31
- suspiciousAccActivity txnActivityDay txnActivityYear threeDSReqAuthData threeDSReqAuthMethod
32
- threeDSReqAuthTimestamp addrMatch cardholderName homePhone mobilePhone
33
- workPhone challengeInd deliveryEmailAddress deliveryTimeframe giftCardAmount
34
- giftCardCount preOrderDate preOrderPurchaseInd reorderItemsInd shipIndicator
35
- ].freeze
36
-
37
- THREE_D_SECURE_2_INDICATORS = [21, 22].freeze
38
-
39
25
  self.supported_cardtypes = [:visa, :master, :american_express, :discover]
40
26
 
41
27
  def purchase(amount, credit_card, detail = {})
@@ -44,7 +30,7 @@ module ActiveMerchant #:nodoc:
44
30
  params = billing_params(amount, credit_card, detail)
45
31
 
46
32
  if three_d_secure_2?(detail)
47
- params.merge!(detail.slice(*RISK_BASE_AUTH_PARAMS_KEYS).compact)
33
+ params.merge!(detail.slice(*EpsilonRiskBaseAuthParams::KEYS).compact)
48
34
  end
49
35
 
50
36
  commit(PATHS[:purchase], params)
@@ -73,7 +59,7 @@ module ActiveMerchant #:nodoc:
73
59
  params[:kari_flag] = detail[:capture] ? 2 : 1 if detail.has_key?(:capture)
74
60
 
75
61
  if three_d_secure_2?(detail)
76
- params.merge!(detail.slice(*RISK_BASE_AUTH_PARAMS_KEYS).compact)
62
+ params.merge!(detail.slice(*EpsilonRiskBaseAuthParams::KEYS).compact)
77
63
  end
78
64
 
79
65
  commit(PATHS[:registered_purchase], params)
@@ -203,6 +189,7 @@ module ActiveMerchant #:nodoc:
203
189
  :payment_code,
204
190
  :item_price,
205
191
  :amount,
192
+ :sales_limit_exceeded_flag,
206
193
  ]
207
194
 
208
195
  commit(PATHS[:find_order], params, response_keys)
@@ -263,7 +250,7 @@ module ActiveMerchant #:nodoc:
263
250
  end
264
251
 
265
252
  def three_d_secure_2?(detail)
266
- THREE_D_SECURE_2_INDICATORS.include?(detail[:tds_flag])
253
+ EpsilonRiskBaseAuthParams.three_d_secure_2?(detail[:tds_flag])
267
254
  end
268
255
  end
269
256
  end
@@ -39,6 +39,10 @@ module ActiveMerchant #:nodoc:
39
39
  params[:memo2] = detail[:memo2] if detail.has_key?(:memo2)
40
40
  params[:user_tel] = detail[:user_tel] if detail.has_key?(:user_tel)
41
41
 
42
+ if three_d_secure_2?(detail)
43
+ params.merge!(detail.slice(*EpsilonRiskBaseAuthParams::KEYS).compact)
44
+ end
45
+
42
46
  commit('receive_order3.cgi', params, RESPONSE_KEYS)
43
47
  end
44
48
 
@@ -50,6 +54,12 @@ module ActiveMerchant #:nodoc:
50
54
 
51
55
  commit('cancel_payment.cgi', params)
52
56
  end
57
+
58
+ private
59
+
60
+ def three_d_secure_2?(detail)
61
+ EpsilonRiskBaseAuthParams.three_d_secure_2?(detail[:tds_flag])
62
+ end
53
63
  end
54
64
  end
55
65
  end
@@ -135,6 +135,10 @@ module ActiveMerchant #:nodoc:
135
135
  @xml.xpath(ResponseXpath::CAPTURED).to_s != '1'
136
136
  end
137
137
 
138
+ def sales_limit_exceeded_flag
139
+ @xml.xpath(ResponseXpath::SALES_LIMIT_EXCEEDED_FLAG).to_s
140
+ end
141
+
138
142
  def uri_decode(string)
139
143
  CGI.unescape(string).encode(Encoding::UTF_8, Encoding::CP932)
140
144
  end
@@ -168,6 +172,7 @@ module ActiveMerchant #:nodoc:
168
172
  AMOUNT = '//Epsilon_result/result[@amount]/@amount'
169
173
  REDIRECT = '//Epsilon_result/result[@redirect]/@redirect'
170
174
  CAPTURED = '//Epsilon_result/result[@kari_flag]/@kari_flag'
175
+ SALES_LIMIT_EXCEEDED_FLAG = '//Epsilon_result/result[@sales_limit_exceeded_flag]/@sales_limit_exceeded_flag'
171
176
  end
172
177
 
173
178
  module ResultCode
@@ -1,5 +1,5 @@
1
1
  module ActiveMerchant
2
2
  module Epsilon
3
- VERSION = "0.14.0"
3
+ VERSION = "0.16.0"
4
4
  end
5
5
  end
@@ -5,6 +5,7 @@ require_relative 'epsilon/version'
5
5
  require_relative 'billing/convenience_store'
6
6
  require_relative 'billing/gateways/epsilon/epsilon_mission_code'
7
7
  require_relative 'billing/gateways/epsilon/epsilon_process_code'
8
+ require_relative 'billing/gateways/epsilon/epsilon_risk_base_auth_params'
8
9
  require_relative 'billing/gateways/epsilon/epsilon_base'
9
10
  require_relative 'billing/gateways/epsilon'
10
11
  require_relative 'billing/gateways/epsilon_convenience_store'
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://secure.epsilon.jp/cgi-bin/order/receive_order3.cgi
6
+ body:
7
+ encoding: UTF-8
8
+ string: contract_code=[CONTRACT_CODE]&user_id=U1747274309&user_name=%E5%B1%B1%E7%94%B0+%E5%A4%AA%E9%83%8E&user_mail_add=yamada-taro%40example.com&item_code=ITEM001&item_name=Greate+Product&order_number=O29285401&st_code=10000-0000-00000-00000-00000-00000-00000&mission_code=1&item_price=10000&process_code=1&xml=1&memo1=memo1&memo2=memo2&tds_flag=21
9
+ headers:
10
+ Content-Type:
11
+ - application/x-www-form-urlencoded
12
+ Connection:
13
+ - close
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Thu, 15 May 2025 01:58:29 GMT
29
+ Content-Type:
30
+ - text/xml
31
+ Content-Length:
32
+ - '228'
33
+ Connection:
34
+ - close
35
+ Vary:
36
+ - Accept-Encoding
37
+ Strict-Transport-Security:
38
+ - max-age=31536000; includeSubDomains; preload
39
+ body:
40
+ encoding: ASCII-8BIT
41
+ string: |
42
+ <?xml version="1.0" encoding="UTF-8" ?>
43
+ <Epsilon_result>
44
+ <result result="1" />
45
+ <result redirect="https%3A%2F%2Fsecure.epsilon.jp%2Fcgi-bin%2Forder%2Fcard3.cgi%3Ftrans_code%3DeyHc6JoHNEiEce2mlXuiCg25" />
46
+ </Epsilon_result>
47
+ recorded_at: Thu, 15 May 2025 01:58:29 GMT
48
+ recorded_with: VCR 6.3.1
@@ -100,6 +100,7 @@ http_interactions:
100
100
  <result add_info="" />
101
101
  <result user_id="U1531791686" />
102
102
  <result memo2="memo2" />
103
+ <result sales_limit_exceeded_flag="0" />
103
104
  </Epsilon_result>
104
105
  http_version:
105
106
  recorded_at: Tue, 17 Jul 2018 01:41:28 GMT
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteEpsilonConvenienceStoreGatewayTest < MiniTest::Test
3
+ class RemoteEpsilonConvenienceStoreGatewayTest < Minitest::Test
4
4
  include SamplePaymentMethods
5
5
 
6
6
  def gateway
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteEpsilonGmoIdGatewayTest < MiniTest::Test
3
+ class RemoteEpsilonGmoIdGatewayTest < Minitest::Test
4
4
  include SamplePaymentMethods
5
5
 
6
6
  def gateway
@@ -1,5 +1,5 @@
1
1
  require 'test_helper'
2
- class RemoteEpsilonLinkPaymentTest < MiniTest::Test
2
+ class RemoteEpsilonLinkPaymentTest < Minitest::Test
3
3
  include SamplePaymentMethods
4
4
 
5
5
  def gateway
@@ -33,6 +33,16 @@ class RemoteEpsilonLinkPaymentTest < MiniTest::Test
33
33
  end
34
34
  end
35
35
 
36
+ def test_epsilon_link_type_with_3d_secure
37
+ ActiveMerchant::Billing::Base.stub(:mode, :production) do
38
+ VCR.use_cassette(:epsilon_link_type_with_3d_secure) do
39
+ response = gateway.purchase(10000, valid_epsilon_link_type_purchase_detail_for_3d_secure, false)
40
+
41
+ pp response
42
+ end
43
+ end
44
+ end
45
+
36
46
  def test_epsilon_link_type_void_successfull
37
47
  VCR.use_cassette(:epsilon_link_type_void_successfull) do
38
48
  # あらかじめ課金済ステータスの受注がイプシロン側にないと取り消しができないため、課金済の受注をイプシロン側で作成しておいた。
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteEpsilonGatewayTest < MiniTest::Test
3
+ class RemoteEpsilonGatewayTest < Minitest::Test
4
4
  include SamplePaymentMethods
5
5
 
6
6
  def gateway
@@ -351,6 +351,7 @@ class RemoteEpsilonGatewayTest < MiniTest::Test
351
351
  assert_equal true, !response.params['last_update'].empty?
352
352
  assert_equal true, !response.params['payment_code'].empty?
353
353
  assert_equal true, !response.params['item_price'].empty?
354
+ assert_equal true, !response.params['sales_limit_exceeded_flag'].empty?
354
355
  end
355
356
  end
356
357
 
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class RemoteEpsilonVirtualAccountGatewayTest < MiniTest::Test
3
+ class RemoteEpsilonVirtualAccountGatewayTest < Minitest::Test
4
4
  include SamplePaymentMethods
5
5
 
6
6
  def gateway
data/test/test_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'minitest/autorun'
2
+ require 'minitest/mock'
2
3
 
3
4
  require 'active_merchant'
4
5
  require 'active_merchant/epsilon'
@@ -69,7 +70,7 @@ module SamplePaymentMethods
69
70
  last_name: 'YAMADA',
70
71
  number: '4123451111111117',
71
72
  month: '12',
72
- year: '2023',
73
+ year: Time.now.year + 1,
73
74
  )
74
75
  end
75
76
 
@@ -295,6 +296,22 @@ module SamplePaymentMethods
295
296
  }
296
297
  end
297
298
 
299
+ def valid_epsilon_link_type_purchase_detail_for_3d_secure
300
+ now = Time.now
301
+ {
302
+ user_id: "U#{Time.now.to_i}",
303
+ user_name: '山田 太郎',
304
+ user_email: 'yamada-taro@example.com',
305
+ item_code: 'ITEM001',
306
+ item_name: 'Greate Product',
307
+ order_number: "O#{now.sec}#{now.usec}",
308
+ st_code: '10000-0000-00000-00000-00000-00000-00000',
309
+ memo1: 'memo1',
310
+ memo2: 'memo2',
311
+ tds_flag: 21
312
+ }
313
+ end
314
+
298
315
  def invalid_epsilon_link_type_purchase_detail
299
316
  now = Time.now
300
317
  {
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class EpsilonConvenienceStoreTest < MiniTest::Test
3
+ class EpsilonConvenienceStoreTest < Minitest::Test
4
4
  def test_blank_parameter_generate_error
5
5
  convenience_store = ActiveMerchant::Billing::ConvenienceStore.new(code: "",
6
6
  full_name_kana: "",
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- class EpsilonGatewayTest < MiniTest::Test
3
+ class EpsilonGatewayTest < Minitest::Test
4
4
  include SamplePaymentMethods
5
5
 
6
6
  def test_set_proxy_address_and_port
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_merchant-epsilon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenichi TAKAHASHI
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-09-21 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activemerchant
@@ -66,6 +65,20 @@ dependencies:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: minitest-mock
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
69
82
  - !ruby/object:Gem::Dependency
70
83
  name: pry-byebug
71
84
  requirement: !ruby/object:Gem::Requirement
@@ -158,6 +171,7 @@ extensions: []
158
171
  extra_rdoc_files: []
159
172
  files:
160
173
  - ".env.sample"
174
+ - ".github/workflows/gem_push.yml"
161
175
  - ".github/workflows/test.yml"
162
176
  - ".gitignore"
163
177
  - CHANGELOG.md
@@ -171,6 +185,7 @@ files:
171
185
  - lib/active_merchant/billing/gateways/epsilon/epsilon_base.rb
172
186
  - lib/active_merchant/billing/gateways/epsilon/epsilon_mission_code.rb
173
187
  - lib/active_merchant/billing/gateways/epsilon/epsilon_process_code.rb
188
+ - lib/active_merchant/billing/gateways/epsilon/epsilon_risk_base_auth_params.rb
174
189
  - lib/active_merchant/billing/gateways/epsilon_convenience_store.rb
175
190
  - lib/active_merchant/billing/gateways/epsilon_gmo_id.rb
176
191
  - lib/active_merchant/billing/gateways/epsilon_link_payment.rb
@@ -194,6 +209,7 @@ files:
194
209
  - test/fixtures/vcr_cassettes/epsilon_link_type_purchase_successful.yml
195
210
  - test/fixtures/vcr_cassettes/epsilon_link_type_void_fail.yml
196
211
  - test/fixtures/vcr_cassettes/epsilon_link_type_void_successfull.yml
212
+ - test/fixtures/vcr_cassettes/epsilon_link_type_with_3d_secure.yml
197
213
  - test/fixtures/vcr_cassettes/find_order_failure.yml
198
214
  - test/fixtures/vcr_cassettes/find_order_success.yml
199
215
  - test/fixtures/vcr_cassettes/find_user_failure.yml
@@ -241,7 +257,6 @@ homepage: http://github.com/pepabo/active_merchant-epsilon
241
257
  licenses:
242
258
  - MIT
243
259
  metadata: {}
244
- post_install_message:
245
260
  rdoc_options: []
246
261
  require_paths:
247
262
  - lib
@@ -256,8 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
271
  - !ruby/object:Gem::Version
257
272
  version: '0'
258
273
  requirements: []
259
- rubygems_version: 3.0.3
260
- signing_key:
274
+ rubygems_version: 3.6.7
261
275
  specification_version: 4
262
276
  summary: Epsilon integration for ActiveMerchant.
263
277
  test_files:
@@ -277,6 +291,7 @@ test_files:
277
291
  - test/fixtures/vcr_cassettes/epsilon_link_type_purchase_successful.yml
278
292
  - test/fixtures/vcr_cassettes/epsilon_link_type_void_fail.yml
279
293
  - test/fixtures/vcr_cassettes/epsilon_link_type_void_successfull.yml
294
+ - test/fixtures/vcr_cassettes/epsilon_link_type_with_3d_secure.yml
280
295
  - test/fixtures/vcr_cassettes/find_order_failure.yml
281
296
  - test/fixtures/vcr_cassettes/find_order_success.yml
282
297
  - test/fixtures/vcr_cassettes/find_user_failure.yml