1: <?php
2:
3: namespace MaxMind\MinFraud\Model;
4:
5: /**
6: * Subscores for components that are used in calculating the riskScore.
7: *
8: * @property-read float|null avsResult The risk associated with the AVS result. If
9: * present, this is a value in the range 0.01 to 99.
10: * @property-read float|null billingAddress The risk associated with the billing
11: * address. If present, this is a value in the range 0.01 to 99.
12: * @property-read float|null billingAddressDistanceToIpLocation The risk
13: * associated with the distance between the billing address and the
14: * location for the given IP address. If present, this is a value in the
15: * range 0.01 to 99.
16: * @property-read float|null browser The risk associated with the browser
17: * attributes such as the User-Agent and Accept-Language. If present, this is
18: * a value in the range 0.01 to 99.
19: * @property-read float|null chargeback Individualized risk of chargeback for the
20: * given IP address given for your account and any shop ID passed. This is
21: * only available to users sending chargeback data to MaxMind. If present,
22: * this is a value in the range 0.01 to 99.
23: * @property-read float|null country The risk associated with the country the
24: * transaction originated from. If present, this is a value in the range 0.01
25: * to 99.
26: * @property-read float|null countryMismatch The risk associated with the
27: * combination of IP country, card issuer country, billing country, and
28: * shipping country. If present, this is a value in the range 0.01 to 99.
29: * @property-read float|null cvvResult The risk associated with the CVV result. If
30: * present, this is a value in the range 0.01 to 99.
31: * @property-read float|null emailAddress The risk associated with the particular
32: * email address. If present, this is a value in the range 0.01 to 99.
33: * @property-read float|null emailDomain The general risk associated with the
34: * email domain. If present, this is a value in the range 0.01 to 99.
35: * @property-read float|null emailTenure The risk associated with the issuer ID
36: * number on the email domain. If present, this is a value in the range 0.01
37: * to 99.
38: * @property-read float|null ipTenure The risk associated with the issuer ID
39: * number on the IP address. If present, this is a value in the range 0.01 to
40: * 99.
41: * @property-read float|null issuerIdNumber The risk associated with the
42: * particular issuer ID number (IIN) given the billing location and the
43: * history of usage of the IIN on your account and shop ID. If present, this
44: * is a value in the range 0.01 to 99.
45: * @property-read float|null orderAmount The risk associated with the particular
46: * order amount for your account and shop ID. If present, this is a value in
47: * the range 0.01 to 99.
48: * @property-read float|null phoneNumber The risk associated with the particular
49: * phone number. If present, this is a value in the range 0.01 to 99.
50: * @property-read float|null shippingAddressDistanceToIpLocation The risk
51: * associated with the distance between the shipping address and the IP
52: * location for the given IP address. If present, this is a value in the
53: * range 0.01 to 99.
54: * @property-read float|null timeOfDay The risk associated with the local time of
55: * day of the transaction in the IP address location. If present, this is a
56: * value in the range 0.01 to 99.
57: */
58: class Subscores extends AbstractModel
59: {
60: /**
61: * @internal
62: */
63: protected $avsResult;
64:
65: /**
66: * @internal
67: */
68: protected $billingAddress;
69:
70: /**
71: * @internal
72: */
73: protected $billingAddressDistanceToIpLocation;
74:
75: /**
76: * @internal
77: */
78: protected $browser;
79:
80: /**
81: * @internal
82: */
83: protected $chargeback;
84:
85: /**
86: * @internal
87: */
88: protected $country;
89:
90: /**
91: * @internal
92: */
93: protected $countryMismatch;
94:
95: /**
96: * @internal
97: */
98: protected $cvvResult;
99:
100: /**
101: * @internal
102: */
103: protected $emailAddress;
104:
105: /**
106: * @internal
107: */
108: protected $emailDomain;
109:
110: /**
111: * @internal
112: */
113: protected $emailTenure;
114:
115: /**
116: * @internal
117: */
118: protected $ipTenure;
119:
120: /**
121: * @internal
122: */
123: protected $issuerIdNumber;
124:
125: /**
126: * @internal
127: */
128: protected $orderAmount;
129:
130: /**
131: * @internal
132: */
133: protected $phoneNumber;
134:
135: /**
136: * @internal
137: */
138: protected $shippingAddressDistanceToIpLocation;
139:
140: /**
141: * @internal
142: */
143: protected $timeOfDay;
144:
145: public function __construct($response, $locales = ['en'])
146: {
147: parent::__construct($response, $locales);
148:
149: $this->avsResult = $this->safeArrayLookup($response['avs_result']);
150: $this->billingAddress = $this->safeArrayLookup($response['billing_address']);
151: $this->billingAddressDistanceToIpLocation
152: = $this->safeArrayLookup($response['billing_address_distance_to_ip_location']);
153: $this->browser = $this->safeArrayLookup($response['browser']);
154: $this->chargeback = $this->safeArrayLookup($response['chargeback']);
155: $this->country = $this->safeArrayLookup($response['country']);
156: $this->countryMismatch = $this->safeArrayLookup($response['country_mismatch']);
157: $this->cvvResult = $this->safeArrayLookup($response['cvv_result']);
158: $this->emailAddress = $this->safeArrayLookup($response['email_address']);
159: $this->emailDomain = $this->safeArrayLookup($response['email_domain']);
160: $this->emailTenure = $this->safeArrayLookup($response['email_tenure']);
161: $this->ipTenure = $this->safeArrayLookup($response['ip_tenure']);
162: $this->issuerIdNumber = $this->safeArrayLookup($response['issuer_id_number']);
163: $this->orderAmount = $this->safeArrayLookup($response['order_amount']);
164: $this->phoneNumber = $this->safeArrayLookup($response['phone_number']);
165: $this->shippingAddressDistanceToIpLocation
166: = $this->safeArrayLookup($response['shipping_address_distance_to_ip_location']);
167: $this->timeOfDay = $this->safeArrayLookup($response['time_of_day']);
168: }
169: }
170: