minfraud 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rubocop.yml +1 -1
- data/.github/workflows/test.yml +1 -0
- data/CHANGELOG.md +23 -3
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/lib/minfraud/components/credit_card.rb +27 -7
- data/lib/minfraud/components/payment.rb +1 -0
- data/lib/minfraud/model/factors.rb +1 -1
- data/lib/minfraud/model/subscores.rb +1 -1
- data/lib/minfraud/version.rb +1 -1
- data/minfraud.gemspec +5 -5
- metadata +28 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2805f5d3d40b2d325926a4a5614b86248bba07f905ffb37ec7dfa9589e97103
|
4
|
+
data.tar.gz: 6d70e15b76a295c376232e6bf277e619ed783c23e46460e89e527458813b44ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a4e77f3d92e6173426e5151b234badc9fbe2503e41178d104eeda51c016835c6459308eaaa810063666030369e89828f1919731add25be6b51e0bf50821704a
|
7
|
+
data.tar.gz: a07520d278d5191c2ac5dc9684d9d52ca670a494b088b56b4f8b920a0198ad53469e473d8114e9d33a891e4daa3f5ffa3573cf2190284dfb993b7e57742f9ca3
|
data/.github/workflows/test.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## v2.1.0 (2022-01-25)
|
4
|
+
|
5
|
+
* Adds the following new processor to `Minfraud::Components::Payment`:
|
6
|
+
* `:windcave`
|
7
|
+
* The `last_4_digits` input to `Minfraud::Components::CreditCard` has been
|
8
|
+
deprecated in favor of `last_digits` and will be removed in a future
|
9
|
+
release. `last_digits`/`last_4_digits` also now supports two digit values
|
10
|
+
in addition to the previous four digit values.
|
11
|
+
* Eight digit `issuer_id_number` inputs are now supported by
|
12
|
+
`Minfraud::Components::CreditCard` in addition to the previously accepted
|
13
|
+
six digit `issuer_id_number`. In most cases, you should send the last four
|
14
|
+
digits for `last_digits`. If you send an `issuer_id_number` that contains
|
15
|
+
an eight digit IIN, and if the credit card brand is not one of the
|
16
|
+
following, you should send the last two digits for `last_digits`:
|
17
|
+
* `Discover`
|
18
|
+
* `JCB`
|
19
|
+
* `Mastercard`
|
20
|
+
* `UnionPay`
|
21
|
+
* `Visa`
|
22
|
+
|
3
23
|
## v2.0.0 (2021-12-06)
|
4
24
|
|
5
25
|
* Breaking change from 1.x: Removed deprecated methods
|
@@ -60,7 +80,7 @@
|
|
60
80
|
|
61
81
|
## v1.5.0 (2021-02-02)
|
62
82
|
|
63
|
-
*
|
83
|
+
* Adds the `hash_address` attribute to `Minfraud::Components::Email`. If
|
64
84
|
this is `true`, the MD5 hash of the `address` will be sent instead of the
|
65
85
|
plain text `address`. Use this if you prefer to send the hash of the
|
66
86
|
`address` rather than the plain text. Note that this normalizes the
|
@@ -70,7 +90,7 @@
|
|
70
90
|
input is set but the `domain` is not.
|
71
91
|
* Adds new payment processors `:apple_pay` and `:aps_payments` to
|
72
92
|
`Minfraud::Components::Payment`.
|
73
|
-
*
|
93
|
+
* Adds support for the IP address risk reasons in the minFraud Insights
|
74
94
|
and Factors responses. This is available at `.ip_address.risk_reasons`.
|
75
95
|
It is an array of `IPRiskReason` objects.
|
76
96
|
|
@@ -84,7 +104,7 @@
|
|
84
104
|
|
85
105
|
* IMPORTANT: Ruby 2.0 is no longer supported. If you're using Ruby 2.0,
|
86
106
|
please use version 1.3.0.
|
87
|
-
*
|
107
|
+
* Adds handling for the `REQUEST_INVALID` error code.
|
88
108
|
* The IP address is no longer a required input.
|
89
109
|
* Adds new payment processor `:tsys` to `Minfraud::Components::Payment`.
|
90
110
|
|
data/LICENSE.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
3
|
Copyright (c) 2016-2020 kushnir.yb
|
4
|
-
Copyright (c) 2020-
|
4
|
+
Copyright (c) 2020-2022 MaxMind, Inc.
|
5
5
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -123,7 +123,7 @@ assessment = Minfraud::Assessments.new(
|
|
123
123
|
},
|
124
124
|
credit_card: {
|
125
125
|
issuer_id_number: '411111',
|
126
|
-
|
126
|
+
last_digits: '7643',
|
127
127
|
bank_name: 'Bank of No Hope',
|
128
128
|
bank_phone_country_code: '1',
|
129
129
|
bank_phone_number: '123-456-1234',
|
@@ -283,7 +283,7 @@ This API uses [Semantic Versioning](https://semver.org/).
|
|
283
283
|
|
284
284
|
Copyright (c) 2016-2020 kushnir.yb.
|
285
285
|
|
286
|
-
Copyright (c) 2020-
|
286
|
+
Copyright (c) 2020-2022 MaxMind, Inc.
|
287
287
|
|
288
288
|
The gem is available as open source under the terms of the [MIT
|
289
289
|
License](https://opensource.org/licenses/MIT).
|
@@ -8,16 +8,18 @@ module Minfraud
|
|
8
8
|
class CreditCard < Base
|
9
9
|
include Minfraud::Validates
|
10
10
|
|
11
|
-
# The issuer ID number for the credit card. This is the first 6
|
12
|
-
# the credit card number. It identifies the issuing bank.
|
11
|
+
# The issuer ID number for the credit card. This is the first 6 or 8
|
12
|
+
# digits of the credit card number. It identifies the issuing bank.
|
13
13
|
#
|
14
14
|
# @return [String, nil]
|
15
15
|
attr_accessor :issuer_id_number
|
16
16
|
|
17
|
-
# The last four digits of the credit card number.
|
17
|
+
# The last two or four digits of the credit card number.
|
18
|
+
#
|
19
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--credit-card__last_digits
|
18
20
|
#
|
19
21
|
# @return [String, nil]
|
20
|
-
attr_accessor :
|
22
|
+
attr_accessor :last_digits
|
21
23
|
|
22
24
|
# The name of the issuing bank as provided by the end user.
|
23
25
|
#
|
@@ -72,12 +74,30 @@ module Minfraud
|
|
72
74
|
# @return [Boolean, nil]
|
73
75
|
attr_accessor :was_3d_secure_successful
|
74
76
|
|
77
|
+
# Get the last digits of the credit card number.
|
78
|
+
#
|
79
|
+
# @deprecated Use {::last_digits} instead.
|
80
|
+
#
|
81
|
+
# @return [String, nil]
|
82
|
+
def last_4_digits
|
83
|
+
@last_digits
|
84
|
+
end
|
85
|
+
|
86
|
+
# Set the last digits of the credit card number.
|
87
|
+
#
|
88
|
+
# @deprecated Use {::last_digits} instead.
|
89
|
+
#
|
90
|
+
# @return [String, nil]
|
91
|
+
def last_4_digits=(last4)
|
92
|
+
@last_digits = last4
|
93
|
+
end
|
94
|
+
|
75
95
|
# @param params [Hash] Hash of parameters. Each key/value should
|
76
96
|
# correspond to one of the available attributes.
|
77
97
|
def initialize(params = {})
|
78
98
|
@bank_phone_country_code = params[:bank_phone_country_code]
|
79
99
|
@issuer_id_number = params[:issuer_id_number]
|
80
|
-
@
|
100
|
+
@last_digits = params[:last_digits] || params[:last_4_digits]
|
81
101
|
@bank_name = params[:bank_name]
|
82
102
|
@bank_phone_number = params[:bank_phone_number]
|
83
103
|
@avs_result = params[:avs_result]
|
@@ -94,8 +114,8 @@ module Minfraud
|
|
94
114
|
return if !Minfraud.enable_validation
|
95
115
|
|
96
116
|
validate_telephone_country_code('bank_phone_country_code', @bank_phone_country_code)
|
97
|
-
validate_regex('issuer_id_number', /\A[0-9]{6}\z/, @issuer_id_number)
|
98
|
-
validate_regex('
|
117
|
+
validate_regex('issuer_id_number', /\A(?:[0-9]{6}|[0-9]{8})\z/, @issuer_id_number)
|
118
|
+
validate_regex('last_digits', /\A(?:[0-9]{2}|[0-9]{4})\z/, @last_digits)
|
99
119
|
validate_string('bank_name', 255, @bank_name)
|
100
120
|
validate_string('bank_phone_number', 255, @bank_phone_number)
|
101
121
|
validate_string('avs_result', 1, @avs_result)
|
@@ -7,7 +7,7 @@ module Minfraud
|
|
7
7
|
module Model
|
8
8
|
# Model representing the Factors response.
|
9
9
|
class Factors < Insights
|
10
|
-
# An object containing
|
10
|
+
# An object containing scores for many of the individual risk factors
|
11
11
|
# that are used to calculate the overall risk score.
|
12
12
|
#
|
13
13
|
# @return [Minfraud::Model::Subscores]
|
@@ -4,7 +4,7 @@ require 'minfraud/model/abstract'
|
|
4
4
|
|
5
5
|
module Minfraud
|
6
6
|
module Model
|
7
|
-
#
|
7
|
+
# Score for risk factors that are used in calculating the riskScore.
|
8
8
|
class Subscores < Abstract
|
9
9
|
# The risk associated with the AVS result. If present, this is a value in
|
10
10
|
# the range 0.01 to 99.
|
data/lib/minfraud/version.rb
CHANGED
data/minfraud.gemspec
CHANGED
@@ -25,13 +25,13 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_runtime_dependency 'connection_pool', '~> 2.2'
|
26
26
|
spec.add_runtime_dependency 'http', '>= 4.3', '< 6.0'
|
27
27
|
spec.add_runtime_dependency 'maxmind-geoip2', '~> 1.1'
|
28
|
-
spec.add_runtime_dependency 'simpleidn', '>= 0.1.1'
|
28
|
+
spec.add_runtime_dependency 'simpleidn', '~> 0.1', '>= 0.1.1'
|
29
29
|
|
30
|
-
spec.add_development_dependency 'bundler', '
|
31
|
-
spec.add_development_dependency 'rake'
|
30
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
31
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
32
32
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
33
|
-
spec.add_development_dependency 'rubocop'
|
34
|
-
spec.add_development_dependency 'webmock'
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 1.23'
|
34
|
+
spec.add_development_dependency 'webmock', '~> 3.14'
|
35
35
|
spec.metadata = {
|
36
36
|
'rubygems_mfa_required' => 'true'
|
37
37
|
}
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minfraud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kushnir.yb
|
8
8
|
- William Storey
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: connection_pool
|
@@ -63,6 +63,9 @@ dependencies:
|
|
63
63
|
name: simpleidn
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.1'
|
66
69
|
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
71
|
version: 0.1.1
|
@@ -70,6 +73,9 @@ dependencies:
|
|
70
73
|
prerelease: false
|
71
74
|
version_requirements: !ruby/object:Gem::Requirement
|
72
75
|
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0.1'
|
73
79
|
- - ">="
|
74
80
|
- !ruby/object:Gem::Version
|
75
81
|
version: 0.1.1
|
@@ -77,30 +83,30 @@ dependencies:
|
|
77
83
|
name: bundler
|
78
84
|
requirement: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
|
-
- - "
|
86
|
+
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
88
|
+
version: '2.2'
|
83
89
|
type: :development
|
84
90
|
prerelease: false
|
85
91
|
version_requirements: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
|
-
- - "
|
93
|
+
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
95
|
+
version: '2.2'
|
90
96
|
- !ruby/object:Gem::Dependency
|
91
97
|
name: rake
|
92
98
|
requirement: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
|
-
- - "
|
100
|
+
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
102
|
+
version: '13.0'
|
97
103
|
type: :development
|
98
104
|
prerelease: false
|
99
105
|
version_requirements: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
|
-
- - "
|
107
|
+
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
109
|
+
version: '13.0'
|
104
110
|
- !ruby/object:Gem::Dependency
|
105
111
|
name: rspec
|
106
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,31 +125,31 @@ dependencies:
|
|
119
125
|
name: rubocop
|
120
126
|
requirement: !ruby/object:Gem::Requirement
|
121
127
|
requirements:
|
122
|
-
- - "
|
128
|
+
- - "~>"
|
123
129
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
130
|
+
version: '1.23'
|
125
131
|
type: :development
|
126
132
|
prerelease: false
|
127
133
|
version_requirements: !ruby/object:Gem::Requirement
|
128
134
|
requirements:
|
129
|
-
- - "
|
135
|
+
- - "~>"
|
130
136
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
137
|
+
version: '1.23'
|
132
138
|
- !ruby/object:Gem::Dependency
|
133
139
|
name: webmock
|
134
140
|
requirement: !ruby/object:Gem::Requirement
|
135
141
|
requirements:
|
136
|
-
- - "
|
142
|
+
- - "~>"
|
137
143
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
144
|
+
version: '3.14'
|
139
145
|
type: :development
|
140
146
|
prerelease: false
|
141
147
|
version_requirements: !ruby/object:Gem::Requirement
|
142
148
|
requirements:
|
143
|
-
- - "
|
149
|
+
- - "~>"
|
144
150
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
146
|
-
description:
|
151
|
+
version: '3.14'
|
152
|
+
description:
|
147
153
|
email:
|
148
154
|
- support@maxmind.com
|
149
155
|
executables: []
|
@@ -216,7 +222,7 @@ licenses:
|
|
216
222
|
- MIT
|
217
223
|
metadata:
|
218
224
|
rubygems_mfa_required: 'true'
|
219
|
-
post_install_message:
|
225
|
+
post_install_message:
|
220
226
|
rdoc_options: []
|
221
227
|
require_paths:
|
222
228
|
- lib
|
@@ -232,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
232
238
|
version: '0'
|
233
239
|
requirements: []
|
234
240
|
rubygems_version: 3.2.22
|
235
|
-
signing_key:
|
241
|
+
signing_key:
|
236
242
|
specification_version: 4
|
237
243
|
summary: Ruby API for the minFraud Score, Insights, Factors, and Report Transactions
|
238
244
|
services
|