minfraud 1.6.0 → 2.2.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/.rubocop.yml +1 -20
- data/CHANGELOG.md +80 -4
- data/Gemfile +0 -9
- data/LICENSE.txt +1 -1
- data/README.md +4 -4
- data/lib/minfraud/assessments.rb +21 -16
- data/lib/minfraud/components/account.rb +1 -1
- data/lib/minfraud/components/billing.rb +1 -1
- data/lib/minfraud/components/credit_card.rb +40 -8
- data/lib/minfraud/components/custom_inputs.rb +1 -1
- data/lib/minfraud/components/device.rb +1 -1
- data/lib/minfraud/components/email.rb +1 -1
- data/lib/minfraud/components/event.rb +11 -11
- data/lib/minfraud/components/order.rb +1 -1
- data/lib/minfraud/components/payment.rb +153 -142
- data/lib/minfraud/components/report/transaction.rb +2 -2
- data/lib/minfraud/components/shipping.rb +2 -2
- data/lib/minfraud/components/shopping_cart.rb +1 -1
- data/lib/minfraud/components/shopping_cart_item.rb +3 -3
- data/lib/minfraud/http_service/response.rb +28 -21
- data/lib/minfraud/model/device.rb +1 -1
- data/lib/minfraud/model/disposition.rb +3 -3
- data/lib/minfraud/model/factors.rb +1 -1
- data/lib/minfraud/model/ip_address.rb +4 -47
- data/lib/minfraud/model/score.rb +1 -1
- data/lib/minfraud/model/subscores.rb +1 -23
- data/lib/minfraud/report.rb +19 -11
- data/lib/minfraud/validates.rb +2 -2
- data/lib/minfraud/version.rb +1 -1
- data/lib/minfraud.rb +18 -24
- data/minfraud.gemspec +13 -10
- metadata +47 -67
- data/lib/maxmind/geoip2/model/city.rb +0 -99
- data/lib/maxmind/geoip2/model/country.rb +0 -94
- data/lib/maxmind/geoip2/model/insights.rb +0 -38
- data/lib/maxmind/geoip2/record/abstract.rb +0 -46
- data/lib/maxmind/geoip2/record/city.rb +0 -62
- data/lib/maxmind/geoip2/record/continent.rb +0 -61
- data/lib/maxmind/geoip2/record/country.rb +0 -78
- data/lib/maxmind/geoip2/record/location.rb +0 -97
- data/lib/maxmind/geoip2/record/maxmind.rb +0 -41
- data/lib/maxmind/geoip2/record/place.rb +0 -52
- data/lib/maxmind/geoip2/record/postal.rb +0 -54
- data/lib/maxmind/geoip2/record/represented_country.rb +0 -47
- data/lib/maxmind/geoip2/record/subdivision.rb +0 -72
- data/lib/maxmind/geoip2/record/traits.rb +0 -233
- data/lib/minfraud/http_service/request.rb +0 -38
- data/lib/minfraud/http_service.rb +0 -45
@@ -4,7 +4,7 @@ module Minfraud
|
|
4
4
|
module Components
|
5
5
|
# Payment corresponds to the payment object of a minFraud request.
|
6
6
|
#
|
7
|
-
# @see https://dev.maxmind.com/minfraud
|
7
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--payment
|
8
8
|
class Payment < Base
|
9
9
|
include ::Minfraud::Enum
|
10
10
|
include Minfraud::Validates
|
@@ -15,147 +15,158 @@ module Minfraud
|
|
15
15
|
# @!attribute processor
|
16
16
|
#
|
17
17
|
# @return [Symbol, nil]
|
18
|
-
enum_accessor :processor, [
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
18
|
+
enum_accessor :processor, %i[
|
19
|
+
adyen
|
20
|
+
affirm
|
21
|
+
afterpay
|
22
|
+
altapay
|
23
|
+
amazon_payments
|
24
|
+
american_express_payment_gateway
|
25
|
+
apple_pay
|
26
|
+
aps_payments
|
27
|
+
authorizenet
|
28
|
+
balanced
|
29
|
+
beanstream
|
30
|
+
bluepay
|
31
|
+
bluesnap
|
32
|
+
boacompra
|
33
|
+
boku
|
34
|
+
bpoint
|
35
|
+
braintree
|
36
|
+
cardknox
|
37
|
+
cardpay
|
38
|
+
cashfree
|
39
|
+
ccavenue
|
40
|
+
ccnow
|
41
|
+
cetelem
|
42
|
+
chase_paymentech
|
43
|
+
checkout_com
|
44
|
+
cielo
|
45
|
+
collector
|
46
|
+
commdoo
|
47
|
+
compropago
|
48
|
+
concept_payments
|
49
|
+
conekta
|
50
|
+
coregateway
|
51
|
+
creditguard
|
52
|
+
credorax
|
53
|
+
ct_payments
|
54
|
+
cuentadigital
|
55
|
+
curopayments
|
56
|
+
cybersource
|
57
|
+
dalenys
|
58
|
+
dalpay
|
59
|
+
datacap
|
60
|
+
datacash
|
61
|
+
dibs
|
62
|
+
digital_river
|
63
|
+
dlocal
|
64
|
+
dotpay
|
65
|
+
ebs
|
66
|
+
ecomm365
|
67
|
+
ecommpay
|
68
|
+
elavon
|
69
|
+
emerchantpay
|
70
|
+
epay
|
71
|
+
eprocessing_network
|
72
|
+
epx
|
73
|
+
eway
|
74
|
+
exact
|
75
|
+
first_atlantic_commerce
|
76
|
+
first_data
|
77
|
+
fiserv
|
78
|
+
g2a_pay
|
79
|
+
global_payments
|
80
|
+
gocardless
|
81
|
+
heartland
|
82
|
+
hipay
|
83
|
+
ingenico
|
84
|
+
interac
|
85
|
+
internetsecure
|
86
|
+
intuit_quickbooks_payments
|
87
|
+
iugu
|
88
|
+
klarna
|
89
|
+
komoju
|
90
|
+
lemon_way
|
91
|
+
mastercard_payment_gateway
|
92
|
+
mercadopago
|
93
|
+
mercanet
|
94
|
+
merchant_esolutions
|
95
|
+
mirjeh
|
96
|
+
mollie
|
97
|
+
moneris_solutions
|
98
|
+
neopay
|
99
|
+
neosurf
|
100
|
+
nmi
|
101
|
+
oceanpayment
|
102
|
+
oney
|
103
|
+
onpay
|
104
|
+
openbucks
|
105
|
+
openpaymx
|
106
|
+
optimal_payments
|
107
|
+
orangepay
|
108
|
+
other
|
109
|
+
pacnet_services
|
110
|
+
payeezy
|
111
|
+
payfast
|
112
|
+
paygate
|
113
|
+
paylike
|
114
|
+
payment_express
|
115
|
+
paymentwall
|
116
|
+
payone
|
117
|
+
paypal
|
118
|
+
payplus
|
119
|
+
paysafecard
|
120
|
+
paysera
|
121
|
+
paystation
|
122
|
+
paytm
|
123
|
+
paytrace
|
124
|
+
paytrail
|
125
|
+
payture
|
126
|
+
payu
|
127
|
+
payulatam
|
128
|
+
payvision
|
129
|
+
payway
|
130
|
+
payza
|
131
|
+
pinpayments
|
132
|
+
posconnect
|
133
|
+
princeton_payment_solutions
|
134
|
+
psigate
|
135
|
+
qiwi
|
136
|
+
quickpay
|
137
|
+
raberil
|
138
|
+
razorpay
|
139
|
+
rede
|
140
|
+
redpagos
|
141
|
+
rewardspay
|
142
|
+
safecharge
|
143
|
+
sagepay
|
144
|
+
securetrading
|
145
|
+
simplify_commerce
|
146
|
+
skrill
|
147
|
+
smartcoin
|
148
|
+
smartdebit
|
149
|
+
solidtrust_pay
|
150
|
+
sps_decidir
|
151
|
+
stripe
|
152
|
+
synapsefi
|
153
|
+
systempay
|
154
|
+
telerecargas
|
155
|
+
towah
|
156
|
+
transact_pro
|
157
|
+
trustly
|
158
|
+
tsys
|
159
|
+
usa_epay
|
160
|
+
vantiv
|
161
|
+
verepay
|
162
|
+
vericheck
|
163
|
+
vindicia
|
164
|
+
virtual_card_services
|
165
|
+
vme
|
166
|
+
vpos
|
167
|
+
windcave
|
168
|
+
wirecard
|
169
|
+
worldpay
|
159
170
|
]
|
160
171
|
|
161
172
|
# The authorization outcome from the payment processor. If the
|
@@ -5,7 +5,7 @@ module Minfraud
|
|
5
5
|
module Report
|
6
6
|
# Contains the fields used in the Report Transaction API.
|
7
7
|
#
|
8
|
-
# @see https://dev.maxmind.com/minfraud/report-transaction
|
8
|
+
# @see https://dev.maxmind.com/minfraud/report-a-transaction?lang=en
|
9
9
|
class Transaction < Base
|
10
10
|
include ::Minfraud::Enum
|
11
11
|
|
@@ -24,7 +24,7 @@ module Minfraud
|
|
24
24
|
# @!attribute tag
|
25
25
|
#
|
26
26
|
# @return [Symbol, nil]
|
27
|
-
enum_accessor :tag, [
|
27
|
+
enum_accessor :tag, %i[chargeback not_fraud spam_or_abuse suspected_fraud]
|
28
28
|
|
29
29
|
# A string which is provided by your payment processor indicating the
|
30
30
|
# reason for the chargeback.
|
@@ -4,7 +4,7 @@ module Minfraud
|
|
4
4
|
module Components
|
5
5
|
# Shipping corresponds to the shipping object of a minFraud request.
|
6
6
|
#
|
7
|
-
# @see https://dev.maxmind.com/minfraud
|
7
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--shipping
|
8
8
|
class Shipping < Addressable
|
9
9
|
include ::Minfraud::Enum
|
10
10
|
|
@@ -14,7 +14,7 @@ module Minfraud
|
|
14
14
|
# @!attribute delivery_speed
|
15
15
|
#
|
16
16
|
# @return [Symbol, nil]
|
17
|
-
enum_accessor :delivery_speed, [
|
17
|
+
enum_accessor :delivery_speed, %i[same_day overnight expedited standard]
|
18
18
|
|
19
19
|
# @param params [Hash] Hash of parameters. Each key/value should
|
20
20
|
# correspond to one of the available attributes.
|
@@ -5,7 +5,7 @@ module Minfraud
|
|
5
5
|
# ShoppingCart corresponds to the shopping_cart object of a minFraud
|
6
6
|
# request.
|
7
7
|
#
|
8
|
-
# @see https://dev.maxmind.com/minfraud
|
8
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--shopping-cart
|
9
9
|
class ShoppingCart < Base
|
10
10
|
# An array of Minfraud::Components::ShoppingCartItem instances.
|
11
11
|
#
|
@@ -5,20 +5,20 @@ module Minfraud
|
|
5
5
|
# ShoppingCartItem corresponds to objects in the shopping_cart object
|
6
6
|
# of a minFraud request.
|
7
7
|
#
|
8
|
-
# @see https://dev.maxmind.com/minfraud
|
8
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--shopping-cart--item
|
9
9
|
class ShoppingCartItem < Base
|
10
10
|
include Minfraud::Validates
|
11
11
|
|
12
12
|
# The category of the item. This can also be a hashed value; see link.
|
13
13
|
#
|
14
|
-
# @see https://dev.maxmind.com/minfraud
|
14
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--shopping-cart--item__category
|
15
15
|
#
|
16
16
|
# @return [String, nil]
|
17
17
|
attr_accessor :category
|
18
18
|
|
19
19
|
# The internal ID of the item. This can also be a hashed value; see link.
|
20
20
|
#
|
21
|
-
# @see https://dev.maxmind.com/minfraud
|
21
|
+
# @see https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en#schema--request--shopping-cart--item__item_id
|
22
22
|
#
|
23
23
|
# @return [String, nil]
|
24
24
|
attr_accessor :item_id
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'json'
|
3
4
|
require 'minfraud/model/error'
|
4
5
|
require 'minfraud/model/factors'
|
5
6
|
require 'minfraud/model/insights'
|
@@ -9,32 +10,35 @@ module Minfraud
|
|
9
10
|
module HTTPService
|
10
11
|
# Response class for HTTP requests.
|
11
12
|
class Response
|
12
|
-
# HTTP
|
13
|
+
# Response HTTP status code.
|
13
14
|
#
|
14
|
-
# @return [
|
15
|
+
# @return [Fixnum, nil]
|
15
16
|
attr_reader :status
|
16
17
|
|
17
|
-
#
|
18
|
+
# Response model.
|
18
19
|
#
|
19
20
|
# @return [Minfraud::Model::Score, Minfraud::Model::Insights,
|
20
21
|
# Minfraud::Model::Factors, nil]
|
21
22
|
attr_reader :body
|
22
23
|
|
23
|
-
#
|
24
|
+
# @param endpoint [Symbol, nil] endpoint name, like :score.
|
24
25
|
#
|
25
|
-
# @
|
26
|
-
|
26
|
+
# @param locales [Array<String>, nil] locales, like ["en"].
|
27
|
+
#
|
28
|
+
# @param response [HTTP::Response] the response object.
|
29
|
+
#
|
30
|
+
# @param body [String] the response body.
|
31
|
+
#
|
32
|
+
# @raise [JSON::ParserError] if there was invalid JSON in the response.
|
33
|
+
def initialize(endpoint, locales, response, body)
|
34
|
+
@status = response.code
|
27
35
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
params[:endpoint],
|
34
|
-
params[:body],
|
35
|
-
params[:locales]
|
36
|
+
@body = make_body(
|
37
|
+
endpoint,
|
38
|
+
locales,
|
39
|
+
response,
|
40
|
+
body,
|
36
41
|
)
|
37
|
-
@headers = params[:headers]
|
38
42
|
end
|
39
43
|
|
40
44
|
# Return the minFraud-specific response code.
|
@@ -48,15 +52,18 @@ module Minfraud
|
|
48
52
|
|
49
53
|
private
|
50
54
|
|
51
|
-
def make_body(endpoint,
|
52
|
-
if
|
53
|
-
|
54
|
-
|
55
|
+
def make_body(endpoint, locales, response, body)
|
56
|
+
if !response.mime_type || !response.mime_type.match(/json/i)
|
57
|
+
return nil
|
58
|
+
end
|
59
|
+
|
60
|
+
h = JSON.parse(body)
|
55
61
|
|
56
|
-
|
62
|
+
if @status != 200
|
63
|
+
return Minfraud::Model::Error.new(h)
|
57
64
|
end
|
58
65
|
|
59
|
-
ENDPOINT_TO_CLASS[endpoint].new(
|
66
|
+
ENDPOINT_TO_CLASS[endpoint].new(h, locales)
|
60
67
|
end
|
61
68
|
|
62
69
|
ENDPOINT_TO_CLASS = {
|
@@ -8,7 +8,7 @@ module Minfraud
|
|
8
8
|
#
|
9
9
|
# In order to receive device output from minFraud Insights or minFraud
|
10
10
|
# Factors, you must be using the Device Tracking Add-on
|
11
|
-
# (https://dev.maxmind.com/minfraud/
|
11
|
+
# (https://dev.maxmind.com/minfraud/track-devices?lang=en).
|
12
12
|
class Device < Abstract
|
13
13
|
# This number represents our confidence that the device_id refers to a
|
14
14
|
# unique device as opposed to a cluster of similar devices. A confidence
|
@@ -11,14 +11,14 @@ module Minfraud
|
|
11
11
|
class Disposition < Abstract
|
12
12
|
# The action to take on the transaction as defined by your custom rules.
|
13
13
|
# The current set of values are "accept", "manual_review", "reject", and
|
14
|
-
# "test".
|
14
|
+
# "test". If you do not have custom rules set up, this will be nil.
|
15
15
|
#
|
16
16
|
# @return [String, nil]
|
17
17
|
attr_reader :action
|
18
18
|
|
19
19
|
# The reason for the action. The current possible values are
|
20
|
-
# "custom_rule"
|
21
|
-
#
|
20
|
+
# "custom_rule" and "default". If you do not have custom rules set up,
|
21
|
+
# this will be nil.
|
22
22
|
#
|
23
23
|
# @return [String, nil]
|
24
24
|
attr_reader :reason
|
@@ -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]
|
@@ -41,61 +41,18 @@ module Minfraud
|
|
41
41
|
end
|
42
42
|
|
43
43
|
@risk_reasons = []
|
44
|
-
if record
|
44
|
+
if record&.key?('risk_reasons')
|
45
45
|
record['risk_reasons'].each do |r|
|
46
46
|
@risk_reasons << Minfraud::Model::IPRiskReason.new(r)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
# them.
|
54
|
-
|
55
|
-
# These are named differently in maxmind-geoip2.
|
56
|
-
@country.define_singleton_method(:is_in_european_union) { in_european_union? }
|
57
|
-
@registered_country.define_singleton_method(:is_in_european_union) { in_european_union? }
|
58
|
-
@represented_country.define_singleton_method(:is_in_european_union) { in_european_union? }
|
59
|
-
@traits.define_singleton_method(:is_anonymous) { anonymous? }
|
60
|
-
@traits.define_singleton_method(:is_anonymous_vpn) { anonymous_vpn? }
|
61
|
-
@traits.define_singleton_method(:is_hosting_provider) { hosting_provider? }
|
62
|
-
@traits.define_singleton_method(:is_public_proxy) { public_proxy? }
|
63
|
-
@traits.define_singleton_method(:is_tor_exit_node) { tor_exit_node? }
|
64
|
-
|
65
|
-
# Mashify turned each language code into an attribute, but
|
66
|
-
# maxmind-geoip2 exposes the names as a hash.
|
67
|
-
LANGUAGE_CODES.each do |c|
|
68
|
-
if @city.names
|
69
|
-
@city.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
70
|
-
end
|
71
|
-
if @continent.names
|
72
|
-
@continent.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
73
|
-
end
|
74
|
-
if @country.names
|
75
|
-
@country.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
76
|
-
end
|
77
|
-
if @registered_country.names
|
78
|
-
@registered_country.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
79
|
-
end
|
80
|
-
if @represented_country.names
|
81
|
-
@represented_country.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
82
|
-
end
|
83
|
-
@subdivisions.each do |s|
|
84
|
-
if s.names
|
85
|
-
s.names.define_singleton_method(c) { fetch(c.to_s, nil) }
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
# This attribute is deprecated.
|
91
|
-
@country.define_singleton_method(:is_high_risk) { get('is_high_risk') }
|
92
|
-
|
93
|
-
# These attributes are deprecated and aren't in maxmind-geoip2.
|
50
|
+
# These attributes are deprecated and aren't in maxmind-geoip2. The
|
51
|
+
# webservice still sends them as of writing, so we'd like to keep them
|
52
|
+
# for now as they could still be providing value.
|
94
53
|
@traits.define_singleton_method(:is_anonymous_proxy) { get('is_anonymous_proxy') }
|
95
54
|
@traits.define_singleton_method(:is_satellite_provider) { get('is_satellite_provider') }
|
96
55
|
end
|
97
|
-
|
98
|
-
LANGUAGE_CODES = [:de, :en, :es, :fr, :ja, :'pt-BR', :ru, :'zh-CN'].freeze
|
99
56
|
end
|
100
57
|
end
|
101
58
|
end
|
data/lib/minfraud/model/score.rb
CHANGED
@@ -65,7 +65,7 @@ module Minfraud
|
|
65
65
|
@queries_remaining = get('queries_remaining')
|
66
66
|
@risk_score = get('risk_score')
|
67
67
|
@warnings = []
|
68
|
-
if record
|
68
|
+
if record&.key?('warnings')
|
69
69
|
record['warnings'].each do |w|
|
70
70
|
@warnings << Minfraud::Model::Warning.new(w)
|
71
71
|
end
|
@@ -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.
|
@@ -84,26 +84,6 @@ module Minfraud
|
|
84
84
|
# @return [Float, nil]
|
85
85
|
attr_reader :email_local_part
|
86
86
|
|
87
|
-
# The risk associated with the issuer ID number on the email domain. If
|
88
|
-
# present, this is a value in the range 0.01 to 99.
|
89
|
-
#
|
90
|
-
# Deprecated effective August 29, 2019. This subscore will default to 1
|
91
|
-
# and will be removed in a future release. The user tenure on email is
|
92
|
-
# reflected in the /subscores/email_address output.
|
93
|
-
#
|
94
|
-
# @return [Float, nil]
|
95
|
-
attr_reader :email_tenure
|
96
|
-
|
97
|
-
# The risk associated with the issuer ID number on the IP address. If
|
98
|
-
# present, this is a value in the range 0.01 to 99.
|
99
|
-
#
|
100
|
-
# Deprecated effective August 29, 2019. This subscore will default to 1
|
101
|
-
# and will be removed in a future release. The IP tenure is reflected in
|
102
|
-
# the overall risk score.
|
103
|
-
#
|
104
|
-
# @return [Float, nil]
|
105
|
-
attr_reader :ip_tenure
|
106
|
-
|
107
87
|
# The risk associated with the particular issuer ID number (IIN) given
|
108
88
|
# the billing location and the history of usage of the IIN on your
|
109
89
|
# account and shop ID. If present, this is a value in the range 0.01 to
|
@@ -162,8 +142,6 @@ module Minfraud
|
|
162
142
|
@email_address = get('email_address')
|
163
143
|
@email_domain = get('email_domain')
|
164
144
|
@email_local_part = get('email_local_part')
|
165
|
-
@email_tenure = get('email_tenure')
|
166
|
-
@ip_tenure = get('ip_tenure')
|
167
145
|
@issuer_id_number = get('issuer_id_number')
|
168
146
|
@order_amount = get('order_amount')
|
169
147
|
@phone_number = get('phone_number')
|